类的基础方法
__init__ : 初始化一个实例,调用在实例创建之后
__new__ : 创建一个实例,操作实例的实际创建进程
__repr__ : 字符串的官方表现形式
__str__ : 字符串的非正式值,print() 调用
__bytes__ : 字节数组的非正式值
__format__ : 格式化字符串的值
行为方式与迭代器类似的类
__iter__ : 遍历某个序列,创建迭代器,初始化迭代器
__next__ : 从迭代器中获取下一个值
__reversed__ : 按逆序创建一个迭代器
计算属性
__getattribute__ : 获取一个计算属性(无条件的)
__getattr__ : 获取一个计算属性(后备)
__setattr__ : 设置某属性
__delattr__ : 删除某属性
__dir__ : 列出所有属性和方法,同 dir()
__len__ : 计算序列的长度
__contains__ : 了解序列是否包含特定的值,x in seq
__getitem__ : 通过键获取值,x[key]
__setitem__ : 通过键设置值,x[key]=value
__delitem__ : 删除一个键值对
__missing__ : 为缺失键提供默认值,x[nonexistent]
可比较的类
__eq__ : 相等, x==y
__ne__ : 不相等,x!=y
__lt__ : 小于,x<y
__le__ : 小于或等于,x<=y
__gt__ : 大于,x>y
__ge__ : 大于或等于,x>=y
__bool__ : 布尔上下文环境中的真值,if x:
可序列化的类
__copy__ : 自定义对象的复制
__deepcopy__ : 自定义对象的深度复制
__getstate__ : 在 picking 之前获取对象的状态
__reduce__ : 序列化某对象
__reduce_ex__ : 序列化某对象(新的 picking 协议)
__getnewargs__ : 控制 unpicking 过程中对象的创建方式
__setstate__ : 控制 unpicking 之后恢复对象的状态
可在 with 语块中使用的类
__enter__ : 在进入 with 语块时执行的特别操作
__exit__ : 在退出 with 语块 时执行的特别操作。with 语块执行结束后总是自动保存文件实际就是在 __exit__() 方法中调用了 self.close() 方法。
Others
__new__ : 类构造器。__new__和__init__的区别
__del__ : 删除对象,回收。
__hash__ : 自定义散列值
__get__ : 获取某个属性的值 type(x).__dict__['color'].__get__(x, type(x))
__set__ : 设置某个属性的值 type(x).__dict__['color'].__set__(x, 'PapayaWhip')
__del__ : 删除某个属性的值 type(x).__dict__['color'].__del__(x)
__isinstansecheck__ : 控制某个对象是否是该对象的实例
__subclasscheck__ : 控制某个类是否是该类的子类
__subclasshock__ : 控制某个类是否是该抽象基类的子类
__add__ : 等价于 x+y
__base__ : 关于类继承和函数查找路径
__bases__ : 关于类继承和函数查找路径
__mro__ : 关于类继承和函数查找路径
__subclasses__ : 返回子类列表
__call__ : 定义对象在调用时的操作
__cmp__ : 在比较的时候调用
__sizeof__ : 对象在内存中的字节数
__basicsize__ : 类在内存中的字节数
参考