Python高级编程(6):python魔法函数一览
前面说了那么多python的魔法函数,那么具体的魔法函数都有哪些呢?我在这里详细的列举出来。总的来说分为两大类,数学运算和非数学运算,下面就分别列举:
数学运算
一元运算符:neg__(-)、__pos__(+)、__abs
二元运算符:lt(<)、 __le__ <= 、 __eq__ == 、 __ne__ != 、 __gt__ > 、 ge >=
算术运算符:add + 、 sub - 、 mul * 、 truediv / 、 floordiv // 、 mod % 、 divmod divmod() 、 pow ** 或 pow() 、 round round()
反向算术运算符:radd 、 rsub 、 rmul 、 rtruediv 、 rfloordiv 、 rmod 、
rdivmod 、 rpow
增量赋值算术运算符:iadd 、 isub 、 imul 、 itruediv 、 ifloordiv 、 imod 、
ipow
位运算符:invert ~ 、 lshift << 、 __rshift__ >> 、 and & 、 or | 、 xor ^
反向位运算符:rlshift 、 rrshift 、 rand 、 rxor 、 ror
增量赋值位运算符:ilshift 、 irshift 、 iand 、 ixor 、 ior
非数学运算
字符串表示:repr:开发模式下会调用它;__str__:对字符串进行格式化用它
集合、序列相关:len__,__getitem__,__setitem__,__delitem__,__contains
迭代相关:iter__,__next
可调用:call
with上下文管理器:enter__,__exit
数值转换:abs__,__bool__,__int__,__float__,__hash__,__index
元类相关:new__,__init
属性相关:__getattr__、 setattr__;__getattribute__、__setattribute__;__dir
属性描述符:__get__、__set__、 delete
协程:await__、__aiter__、__anext__、__aenter__、__aexit
注意:所有黑色函数名都是以双下划线开头,双下划线结尾!!!
最后需要说明的一点是,我们如果可以使用Python原生的数据类型:list,dict,set,tuple等,那么我们的运行速度就会很快,因为它原生的数据类型都是cpython,而不是jpython,这样由C语言编写的解释器运行速度非常快,使得我们的开发效率得到了提升。