[ Python ] 常用运算符对应的魔术方法
https://www.cnblogs.com/yeungchie/
Python中的运算符丰富多样,它们可以分为多个类别,包括算术运算符、比较运算符、逻辑运算符、位运算符、身份运算符、成员运算符等。每个运算符都有其对应的魔术方法(也称为特殊方法或dunder方法,即双下划线方法),这些方法在特定情况下会被Python调用来实现运算符的行为。下面是一些常见运算符及其对应的魔术方法:
算术运算符
+加法:__add__(self, other)-减法:__sub__(self, other)*乘法:__mul__(self, other)/除法(Python 3 中为真除法):__truediv__(self, other)//整除:__floordiv__(self, other)%取模:__mod__(self, other)**幂运算:__pow__(self, other[, modulo])+(一元正号):__pos__(self)-(一元负号):__neg__(self)~(按位取反,不常用):__invert__(self)
比较运算符
==等于:__eq__(self, other)!=不等于:__ne__(self, other)<小于:__lt__(self, other)>大于:__gt__(self, other)<=小于等于:__le__(self, other)>=大于等于:__ge__(self, other)
逻辑运算符
Python中没有直接的魔术方法对应逻辑运算符,逻辑运算通常通过
and、or、not关键字实现
位运算符
&按位与:__and__(self, other)|按位或:__or__(self, other)^按位异或:__xor__(self, other)<<左移:__lshift__(self, other)>>右移:__rshift__(self, other)
身份运算符
is没有直接对应的魔术方法,因为这是Python解释器直接处理的。is not同上。
成员运算符
in没有直接对应的魔术方法,但可以通过重写__contains__(self, item)来影响in的判断逻辑。not in间接通过__contains__方法影响。
其他特殊方法
+(用于字符串拼接或列表合并):根据对象类型不同,可能调用__add__或特定类型的其他方法。[](索引和切片):__getitem__(self, key)、__setitem__(self, key, value)、__delitem__(self, key)()(调用):__call__(self[, args...])
这些魔术方法允许你在自定义类中重载运算符,从而让类实例支持这些运算符的行为。需要注意的是,实现这些方法时应遵循运算符的常规语义,以保持代码的一致性和可预测性。

浙公网安备 33010602011771号