向量类
Vector2d类是自定义的一个python类,实现了一些基础的魔法方法,透过这个类可以对python的类进行一定的了解。
1  | from array import array  | 
@classmethod与@staticmethod
1  | class demo:  | 
@classmethod
第一个参数接受类本身,而不是实例本身。所以被 @classmethod装饰的函数都是类方法,只能对类进行操作,不能对实例进行操作。
具体可以参照第一个代码的使用。   
@staticmethod
与普通的方法没有太大的区别,唯一的区别就是定义的地方不一样而已。
格式化显示
内置的format()函数和str.format()方法都会调用.__format__(format_spec)方法。在没有实现__format__方法时,会返回str(my_object)。具体的format()使用方法在此不具体讲解。   
__slots__类属性
- 使用
__slots__将所有的实例属性存储到一个可迭代对象中,从而避免使用消耗内存的__dict__属性。 - 但是缺点是在类中定义了
__slots__属性之后,实例不能拥有__slots__之外的属性。另外,不要把__dict__属性也放到__slots__中,原因太明显了。 - 用户自定义的类中默认有
__weakref__属性,但是如果使用了__slots__记得将其放进去,否则该类将不再支持弱引用。 __slots__属性不可以继承。
覆盖类属性
1  | Vector2d.typecode = 'b'  | 
第一种方式修改类属性,第二种方式用实例属性去覆盖类属性。