类的基础方法
- __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__: 类在内存中的字节数
参考