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