这本书需要一定基础,旨在让代码更加优雅。很推荐,里面会介绍一些最佳实践,以及背后的原因和设计思路。

与运算符无关的特殊方法

特殊方法是为了让解释器调用,不要本末倒置。

类别 方法名 备注
字符串、字节序列表示形式 __repr__,__str__,__format__,__bytes__
数值转换 __abs__,__bool__,__complex__,__init__,__float__,__hash__,__index__
集合模拟 __len__,__getitem__,__setitem__,__delitem__,__contains__
迭代枚举 __iter__,__reversed__,__next__
可调用模拟 __call__
上下文管理 __enter__,__exit__
实例创建和销毁 __new__,__init__,__del__
属性管理 __getattr__,__getattribute__,__setattr__,__delattr__,__dir__
属性描述符 __get__,__set__,__delete__
跟类相关的服务 __prepare__,__instancecheck__,__subclasscheck__