运算相关魔术方法(上帝模式)
比较运算相关魔术方法 1个.__ LT __() 格式: def __lt __(self,other): 返回数据 特征: 触发时机:进行小于判断时自动触发 参数:2个参数第一个是自,第二个判断的第二个对象 返回值:返回值可以任意类型,推荐布尔值 作用:定义小于号的行为:x <y调用x.lt(y) 2 .__乐__() 格式: def __le __(self): 返回str 特征: 触发时机:进行小于等于判断时自动触发 参数:2个参数第一个是自,第二个判断的第二个对象 返回值:返回值可以任意类型,推荐布尔值 作用:定义小于等于号的行为:x <= y调用x.le(y) 3 .__ GT __() 格式: def __gt __(self): 返回str 特征: 触发时机:进行大于判断时自动触发 参数:2个参数第一个是自,第二个判断的第二个对象 返回值:返回值可以任意类型,推荐布尔值 作用:定义大于号的行为:x> y调用x.gt(y) 4 .__ GE __() 格式: def __ge __(self): 返回str 特征: 触发时机:进行大于等于判断时自动触发 参数:2个参数第一个是自,第二个判断的第二个对象 返回值:返回值可以任意类型,推荐布尔值 作用:定义大于等于号的行为:x> = y调用x.ge(y) 5 .__当量__() 格式: def __eq __(self): 返回str 特征: 触发时机:进行等于判断时自动触发 参数:2个参数第一个是自,第二个判断的第二个对象 返回值:返回值可以任意类型,推荐布尔值 作用:定义大于等于号的行为:x == y调用x.eq(y) 6 .__ NE __() 格式: def __ne __(self): 返回str 特征: 触发时机:进行不等于判断时自动触发 参数:2个参数第一个是自,第二个判断的第二个对象 返回值:返回值可以任意类型,推荐布尔值 作用:定义不等号的行为:x!= y调用x.ne(y) 算术运算相关魔术方法 __add __(self,other)定义加法的行为:+ __sub __(self,other)定义减法的行为: - __mul __(self,other)定义乘法的行为: __truediv __(self,other)定义真除法的行为:/ __floordiv __(self,other)定义整数除法的行为:// __mod __(self,other)定义取模算法的行为:% __divmod __(self,other)定义当被divmod()调用时的行为 __pow __(self,other [,modulo])定义当被power()调用或**运算时的行为 __lshift __(self,other)定义按位左移位的行为:<< __rshift __(self,other)定义按位右移位的行为:>> __and __(self,other)定义按位与操作的行为:& __xor __(self,other)定义按位异或操作的行为:^ __or __(self,other)定义按位或操作的行为:| 反运算相关魔术方法 __radd __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 __rsub __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 __rmul __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 __rtruediv __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 __rfloordiv __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 __rmod __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 __rdivmod __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 __rpow __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 __rlshift __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 __rrshift __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 __rand __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 __rxor __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 __ror __(self,other)与上方相同,当左操作数不支持相应的操作时被调用 赋值运算相关魔术方法 __iadd __(self,other)定义赋值加法的行为:+ = __isub __(self,other)定义赋值减法的行为: - = __imul __(self,other)定义赋值乘法的行为:= __itruediv __(self,other)定义赋值真除法的行为:/ = __ifloordiv __(self,other)定义赋值整数除法的行为:// = __imod __(self,other)定义赋值取模算法的行为:%= __ipow __(self,other [,modulo])定义赋值幂运算的行为:** = __ilshift __(self,other)定义赋值按位左移位的行为:<< = __irshift __(self,other)定义赋值按位右移位的行为:>> = __iand __(self,other)定义赋值按位与操作的行为:&= __ixor __(self,other)定义赋值按位异或操作的行为:^ = __ior __(self,other)定义赋值按位或操作的行为:| = 一元运算相关魔术方法 __pos __(self)定义正号的行为:+ x __neg __(self)定义负号的行为:-x __abs __(self)定义当被abs()调用时的行为 __invert __(self)定义按位求反的行为:〜x 类型转换相关魔术方法JIANG __complex __(self)定义当被complex()调用时的行为(需要返回恰当的值) __int __(self)定义当被int()调用时的行为(需要返回恰当的值) __float __(self)定义当被float()调用时的行为(需要返回恰当的值) __round __(self [,n])定义当被round()调用时的行为(需要返回恰当的值) __index(self)__ 1.当对象被被用在切片表达式中时,实现整形强制转换 2.如果你定义了一个可能在切片时用到的定制的数值型,你应该定义index 3.如果index被定义,则int也需要被定义,并返回相同的值 上下文管理相关魔术方法 __enter __()和__exit __() 输入(个体经营) 1.定义当使用语句时的初始化行为 2.输入的返回值与语句的目标或者作为后的名字绑定 退出(自我,exctype,excvalue,追溯) 1.定义当一个代码块被执行或者终止后上下文管理器应该做什么 2.一般被用来处理异常,清除工作或者做一些代码块执行完毕之后的日常工作 容器类型相关魔术方法 __len __(self)定义当被调用时的行为(返回容器中元素的个数) __getitem __(self,key)定义获取容器中指定元素的行为,相当于self [key] __setitem __(self,key,value)定义设置容器中指定元素的行为,相当于self [key] = value __delitem __(self,key)定义删除容器中指定元素的行为,相当于del [key] __iter __(self)定义当迭代容器中的元素的行为 __reversed __(self)定义当被reversed()调用时的行为 __contains __(self,item)定义当使用成员测试运算符(in或not in)时的行为