广告
返回顶部
首页 > 资讯 > 后端开发 > Python >常用的Python魔法方法有哪些
  • 215
分享到

常用的Python魔法方法有哪些

2023-06-15 06:06:53 215人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这期内容当中小编将会给大家带来有关常用的python魔法方法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、算数运算符的魔法方法Python2.2以后,对类和类型进行了统一,做法就是讲int()、

这期内容当中小编将会给大家带来有关常用的python魔法方法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一、算数运算符的魔法方法

  • Python2.2以后,对类和类型进行了统一,做法就是讲int()、float()、str()、list()、tuple()这些BIF转换为工厂函数(类对象)

  • 给出以下算数运算符对应的魔法方法,前面和后面都被双下划线包尾说明是魔法方法

运算符对应的魔法方法中文注释
+__ add__(self, other)加法
-__ sub__(self, other)减法
*__ mul__(self, other)乘法
/__ truediv__(self, other)真除法
//__ floordiv__(self, other)整数除法
%__ mod__(self, other)取余除法
divmod(a, b)__ divmod__(self, other)把除数和余数运算结果结合,divmod(a,b)返回值是一个元组(a//b, a%b)
**__ pow__(self, other[,modulo])self的other次方再对modulo取余
<<__ lshift__(self, other)按位左移
>>__ rshift__(self, other)按位右移
&__ and__(self, other)按位与操作
^__ xor__(self, other)按位异或操作(同为0,异为1)
__ or__(self, other)按位或操作(有1则1)
  • eg:

>>> type(len)<class 'builtin_function_or_method'>            #普通的BIF>>> type(int)<class 'type'>             #工厂函数(类对象),当调用它们的时候,其实就是创建了一个相应的实例对象>>> type(dir)<class 'builtin_function_or_method'>>>> type(list)<class 'type'>>>> a = int('123')        #创建一个相应的实例对象a>>> b = int('345')>>> a + b              #python在两个对象进行相加操作468
  • eg:举个例子,下面定义一个比较特立独行的类:

继承int,并重写__add__方法

>>> class New_int(int):    def __add__(self,other):        return int.__sub__(self,other)    def __sub__(self,other):        return int.__add__(self,other)    >>> a = New_int(3)>>> b = New_int(5)>>> a + b    #两个对象相加,触发 __add__(self,other)方法-2>>> a - b8>>>实例2:错误写法,会造成无限递归>>> class New_int(int):    def __add__(self,other):        return (self + other)      def __sub__(self,other):        return (self - other)>>> class New_int(int):    def __add__(self,other):        return (int(self) + int(other))       #将self与other强制转换为整型,所以不会出现两个对象相加触发__add__()方法    def __sub__(self,other):        return (int(self) - int(other))    >>> a = New_int(3)>>> b = New_int(5)>>> a + b8

二、反运算相关的魔法方法

  • 反运算相关的魔法方法

魔法方法定义
__ radd__(self, other)定义加法的行为:+(当左操作数不支持相应的操作时被调用)
__ rsub__(self, other)定义减法的行为:-(当左操作数不支持相应的操作时被调用)
__ rmul__(self, other)定义乘法的行为:*(当左操作数不支持相应的操作时被调用)
__ rtruediv__(self, other)定义真除法的行为:/(当左操作数不支持相应的操作时被调用)
__ rfloordiv__(self, other)定义整数除法的行为://(当左操作数不支持相应的操作时被调用)
__ rmod__(self, other)定义取模算法的行为:%(当左操作数不支持相应的操作时被调用)
__ rdivmod__(self, other)定义当被divmod()调用时的行为(当左操作数不支持相应的操作时被调用)
__ rpow__(self, other)定义当被power()调用或**运算时的行为(当左操作数不支持相应的操作时被调用)
__ rlshift__(self, other)定义按位左移位的行为:<<(当左操作数不支持相应的操作时被调用)
__ rrshift__(self, other)定义按位右移位的行为:>>(当左操作数不支持相应的操作时被调用)
__ rand__(self, other)定义按位与操作的行为:&(当左操作数不支持相应的操作时被调用)
__ rxor__(self, other)定义按位异或操作的行为:^(当左操作数不支持相应的操作时被调用)
__ ror__(self, other)定义按位或操作的行为:丨(当左操作数不支持相应的操作时被调用)
>>> class int(int):    def __add__(self,other):        return int.__sub__(self,other)    >>> a = int(3)>>> b = int(2)>>> a + b1反运算与算术运算符的不同之处是,反运算多了一个'r',例如 __add__()的反运算对应为 __radd__()>>> a + b这里a是加数,b是被加数,如果a对象的__add__()方法没有实现或者不支持相应的操作,那么python就会自动调用b的__radd__()方法实例:>>> class Nint(int):    def __radd__(self,other):        return int.__sub__(self,other)    >>> a = Nint(5)>>> b = Nint(3)>>> a + b      #由于a对象默认有__add__()方法,所以b的__radd__()没有执行8实例2:>>> class Nint(int):    def __radd__(self,other):        return int.__sub__(self,other)    >>> b = Nint(5)>>> 3 + b         #由于3无__add__()方法,所以执行b的反运算__radd__(self,other)方法,其中self是b对象2

eg:注:在重写反运算魔法方法时,一定要注意顺序问题。得到的应该是个负数,所以顺序改变下。

常用的Python魔法方法有哪些 

三、增量赋值运算

增量赋值运算的魔法方法

魔法方法定义
__ iadd__(self, other)定义赋值加法的行为:+=
__ isub__(self, other)定义赋值减法的行为:-=
__ imul__(self, other)定义赋值乘法的行为:*=
__ itruediv__(self, other)定义赋值真除法的行为:/=
__ ifloordiv__(self, other)定义赋值整数除法的行为://=
__ imod__(self, other)定义赋值取模算法的行为:%=
__ ipow__(self, other)定义赋值幂运算的行为:**=
__ ilshift__(self, other)定义赋值按位左移位的行为:<<=
__ irshift__(self, other)定义赋值按位右移位的行为:>>=
__ iand__(self, other)定义赋值按位与操作的行为:&=
__ ixor__(self, other)定义赋值按位异或操作的行为:^=
__ ior__(self, other)定义赋值按位或操作的行为:丨=
--

四、一元操作符

  • 一元操作符的魔法方法

魔法方法定义
__ neg__(self)定义正号的行为:+x
__ pos__(self)定义负号的行为:-x
__ abs__(self)定义当被abs()调用时的行为
__ invert__(self)定义按位求反的行为:~x

python的五大特点是什么

python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2.面向对象,与其他主要的语言如c++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程。3.可移植性,Python程序无需修改就可以在各种平台上运行。4.解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5.开源,Python是 FLOSS(自由/开放源码软件)之一。

上述就是小编为大家分享的常用的Python魔法方法有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网Python频道。

--结束END--

本文标题: 常用的Python魔法方法有哪些

本文链接: https://www.lsjlt.com/news/278044.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 常用的Python魔法方法有哪些
    这期内容当中小编将会给大家带来有关常用的Python魔法方法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、算数运算符的魔法方法python2.2以后,对类和类型进行了统一,做法就是讲int()、...
    99+
    2023-06-15
  • python中有哪些常用的魔术方法
    这篇文章将为大家详细讲解有关python中有哪些常用的魔术方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比...
    99+
    2023-06-14
  • python魔法方法有哪些
    本篇文章给大家分享的是有关python魔法方法有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WE...
    99+
    2023-06-14
  • Python中的魔法方法有哪些
    Python中的魔法方法:1.__del__方法常用于明确销毁某个对象;2.__init__()方法常用于初始化实例对象;3.__new__()方法可以定义一个对象的初始化操作;Python中的魔法方法有以下几种__del__方法__del...
    99+
    2022-10-20
  • Python中魔法方法有哪些
    Python中魔法方法有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python提供的魔法方法 魔术方法这里按照不同的类别有如下分类,用个表格给大家列举出来:看完上述内容...
    99+
    2023-06-19
  • 常用的python魔法函数有哪些
    在Python中,魔法函数(或特殊方法)是具有双下划线开始和结束的特殊函数,用于定义类的行为和操作。以下是一些常用的Python魔法...
    99+
    2023-10-25
    python
  • python魔术方法有哪些
    python魔术方法有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、类和对象通俗理解:类就是模板,对象就是通过模板创造出来的物体类(Class)由3个部...
    99+
    2023-06-15
  • Python中有哪些常用的魔法命令
    这篇文章给大家介绍Python中有哪些常用的魔法命令,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。基础常识 ?和?? ->例:%matplotlib、%matplotlib后缀为可以获取一个对象的相关信...
    99+
    2023-06-16
  • 常见的PHP魔术方法类有哪些
    这篇文章主要讲解了“常见的PHP魔术方法类有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“常见的PHP魔术方法类有哪些”吧!__construct()方法__construct()方法是...
    99+
    2023-07-05
  • 总结Python常用的魔法方法
    目录一、算数运算符的魔法方法二、反运算相关的魔法方法三、增量赋值运算四、一元操作符一、算数运算符的魔法方法 python2.2以后,对类和类型进行了统一,做法就是讲int(...
    99+
    2022-11-12
  • 详解Python常用的魔法方法
    目录一、python魔法方法二、运算符重载三、打印操作的魔法方法四、属性操作的魔法方法五、描述符六、定制序列七、迭代器一、python魔法方法 Python的魔法方法会在特定的情况下...
    99+
    2022-11-12
  • PHP有哪些魔术方法
    这篇文章主要为大家展示了“PHP有哪些魔术方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP有哪些魔术方法”这篇文章吧。PHP是一门非常优秀的脚本编程语言,与其它编程语言有一个非常不同的地...
    99+
    2023-06-04
  • php7有哪些魔术方法
    本篇内容介绍了“php7有哪些魔术方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php7魔术方法有:1、“__constract”方法;...
    99+
    2023-06-22
  • Python常用的魔法方法是什么
    这篇文章将为大家详细讲解有关Python常用的魔法方法是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、python魔法方法Python的魔法方法会在特定的情况下自动调用,且他们的方法名通常被双下划...
    99+
    2023-06-15
  • python里的魔法函数有哪些
    python中的魔法函数有以下几种__init__()函数__init__()函数的作用:__init__()函数的作用是常用于初始化实例对象,每次构造一个实例对象时,都会调用该类的初始化函数。__init__()函数使用方法:>>> cl...
    99+
    2022-10-11
  • python常用的魔法方法(双下划线)
    目录前言魔法方法__init__方法__new__方法__call__方法__str___方法__del___方法__enter__ & __exit__方法item系列方法...
    99+
    2022-11-12
  • php中有哪些魔幻方法
    今天就跟大家聊聊有关php中有哪些魔幻方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。魔幻方法有:“__construct()”、“__destruct()”、“__set()”、...
    99+
    2023-06-20
  • 聊聊Python中常见魔法方法
    ​什么是魔法方法?魔法方法(Magic Methods)是Python中的内置函数,一般以双下划线开头和结尾,例如__init__、__del__等。之所以称之为魔法方法,是因为这些方法会在进行特定的操作时会自动被调用。在Python中,可...
    99+
    2023-05-15
    代码 Python 魔法方法
  • python元组常用的方法有哪些
    Python元组是不可变的序列类型,因此元组的方法相对较少。以下是一些常用的元组方法:1. index():返回元素在元组中第一次出...
    99+
    2023-10-20
    python
  • Python的NumPy库常用方法有哪些
    这篇“Python的NumPy库常用方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python的NumPy库常用方...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作