repr()
以便于开发者理解的方式返回对象的字符串表达形式
str()
以便于用户理解的方式返回对象的字符串表达形式
classmethod改变了调用方法的方式,因此类方法的第一个参数是类本身,而不是实例,classmethod最常见得用途是定义备选构造方法
staticmethod装饰器也会改变方法的调用方式,但是第一个参数不是特殊的值,其实静态方法就是普通的函数
格式化显示
内置的format() 函数和str.format()方法把各个类型的格式化方法委托给相应的.__format__方法
使用__slots__类属性节省空间
默认情况下,Python在各个实例中名为__dict__的字典中存储实例属性,字典会消耗大量内存,如果要处理数百万个属性不多的实例,通过__slots__类属性可以节省大量内存,方法是让解释器在元组中存储实例属性。
__slots__能显著节省内存
- 每一个子类都要定义__slots__属性,因为解释器会忽略继承__slots__属性
- 实例只能拥有__slots__中列出的属性
- 如果不能把'__weakref__'加入__slots__,实例就不能作为弱引用的目标
类属性可以为实例属性提供默认值