python 魔法函数
概述
魔法函数(Magic Methods),是Python的一种高级语法,允许在类中自定义函数(函数名格式一般为__xx__),并绑定到类的特殊方法中。
比如在类A中自定义__str__()函数,则在调用str(A())时,会自动调用__str__()函数,并返回相应的结果。在我们平时的使用中,可能经常使用__init__函数(构造函数)和__del__函数(析构函数),其实这也是魔法函数的一种。
- Python中以双下划线(xx)开始和结束的函数(不可自己定义)为魔法函数。
- 调用类实例化的对象的方法时自动调用魔法函数。
- 在自己定义的类中,可以实现python的内置函数
常见魔法函数:非数学运算
字符串表示:
__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__函数
常见魔法函数:数学运算
一元运算符:
__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__、__ifloordiv__和__ipow__。
位运算符:
__invert__ (~)、__lshift__ (<<)、__rshift__ (>>)、__and__ (&)、__or__ (|)和__xor__ (^)
反向位运算符:
__rlshift__、__rrshift__、__iand__、__ixor__和__ior__
增量赋值运算符:
__ilshift__、__irshift__、__iand__、__ixor__和__ior__
其他魔法函数
__unicode__()函数,__ delattr__()函数, __ del__()函数, __dict__()函数,__all__()函数

浙公网安备 33010602011771号