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__()函数

参考文档:
Python:实例讲解Python中的魔法函数(高级语法)

posted @ 2024-09-06 15:57  二月雪  阅读(3)  评论(0编辑  收藏  举报