__getattr__(self,attr)
:获取属性attr;内建函数self.getattr(attr)的调用,仅当属性没找到时才被调用;__setattr__(self,attr,val)
:设置属性attr;内建函数self.setattr(self,attr,val)的调用;__delattr__(self,attr)
:删除属性attr;内建函数self.delattr(attr)时被调用;__getattribute__(self,attr)
:获取属性attr;内建函数self.getattr(attr)的调用,它总是被调用;__get__(self,attr)
:获取属性描述符;__set__(self,attr)
:设置属性描述符;__delete__(self,attr)
:删除属性描述符;
4、算数运算符重载
__add__(self,obj)
:加法运算self+obj;__sub__(self,obj)
:减法运算self-obj;__mul__(self,obj)
:乘法运算self*obj;__div__(self,obj)
:除法运算self/obj;__truediv__(self,obj)
:True除;除法运算self/obj;__floordiv__(self,obj)
:Floor除;除法运算self//obj;__mod__(self,obj)
:取模/取余;模运算self%obj;__divmod__(self,obj)
:除和取模;内建divmod();__pow__(self,obj[,mod])
:取模/取余;内建pow();幂运算符"**";__radd__(self,obj)
:加法运算self+obj;__rsub__(self,obj)
:减法运算self-obj;__rmul__(self,obj)
:乘法运算self*obj;__rdiv__(self,obj)
:除法运算self/obj;__rtruediv__(self,obj)
:True除;除法运算self/obj;__rfloordiv__(self,obj)
:Floor除;除法运算self//obj;__rmod__(self,obj)
:取模/取余;模运算self%obj;__rdivmod__(self,obj)
:除和取模;内建divmod();__rpow__(self,obj[,mod])
:取模/取余;内建pow();幂运算符"**";__iadd__(self,obj)
:加法运算self+=obj;__isub__(self,obj)
:减法运算self-=obj;__imul__(self,obj)
:乘法运算self*=obj;__idiv__(self,obj)
:除法运算self/=obj;__itruediv__(self,obj)
:True除;除法运算self/=obj;__ifloordiv__(self,obj)
:Floor除;除法运算self//=obj;__imod__(self,obj)
:取模/取余;模运算self%=obj;__ipow__(self,obj[,mod])
:取模/取余;内建pow();幂运算符"**";
5、位操作运算符重载
__lshift__(self,obj)
:左移运算符"<<";__rshift__(self,obj)
:右移运算符">>";__and__(self,obj)
:按位与运算符"&";__or__(self,obj)
:按位或运算符"|";__xor__(self,obj)
:按位异或运算符"^";__rlshift__(self,obj)
:左移运算符"<<";__rrshift__(self,obj)
:右移运算符">>";__rand__(self,obj)
:按位与运算符"&";__ror__(self,obj)
:按位或运算符"|";__rxor__(self,obj)
:按位异或运算符"^";__ilshift__(self,obj)
:左移运算符"<<=";__irshift__(self,obj)
:右移运算符">>=";__iand__(self,obj)
:按位与运算符"&=";__ior__(self,obj)
:按位或运算符"|=";__ixor__(self,obj)
:按位异或运算符"^=";
6、一元运算符重载
__neg__(self)
:取负;__pos__(self)
:取正;__abs__(self)
:取绝对值;内建abs()调用;__invert__(self)
:按位取反;操作符"~";
7、类型转换
__complex__(self,com)
:转换成complex(复数);内建complex()调用;__int__(self)
:转换成int;内建int()调用;__long__(self)
:转换成long;内建long()调用;__float__(self)
:转换成float;内建float()调用;__oct__(self)
:转换成八进制;内建oct()调用;__hex__(self)
:转换成十六进制;内建hex()调用;
8、序列类型操作
__len__(self)
:序列中的元素数量;__getitem__(self,ind)
:对象序列化时依据索引ind得到对应的值;执行"val=obj[idn]"时调用;__setitem__(self,ind,val)
:对象序列化时依据索引ind设置对应的值;执行"obj[idn]=val"时调用;__delitem__(self,ind)
:对象序列化时依据索引ind删除对应的值;执行"del obj[idn]"时调用;__getslice__(self,ind1,ind2)
:对象序列化时依据索引区间,得到对应的序列片段;__setslice__(self,ind1,ind2)
:对象序列化时依据索引区间,设置对应的序列片段;__delslice__(self,ind1,ind2)
:对象序列化时依据索引区间,删除对应的序列片段;__contains__(self,val)
:测试成员val是否在序列中;内建关键字in的调用;__add__(self,obj)
:串联操作符"+";__mul__(self,obj)
:重复操作符"*";__iter__(self)
:创建迭代类;内建函数iter(self)调用;__reversed__(self)
:实现序列翻转;内建函数reversed(self)的调用;
9、映射类型操作
__len__(self)
:映射中的元素数量;__hash__(self)
:散列函数值;__getitem__(self,key)
:对象映射化时依据主键key得到对应的值;执行"val=obj[key]"时调用;__setitem__(self,key,val)
:对象映射化时依据主键key设置对应的值;执行"obj[key]=val"时调用;__delitem__(self,key)
:对象映射化时依据主键key删除对应的值;执行"del obj[key]"时调用;__missing__(self,key)
:在字典中不存在给定主键key的value,则提供一个默认值;