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__()
函数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人