13.4 类属性
属性就是属于另一个对象的数据或者函数元素,可以通过我们熟悉的句点属性标识来访问。
13.4.1 类的数据属性
数据属性仅仅是所定义的类的变量。
静态变量,或者是静态数据表示这些数据是与它们所属的类对象绑定的,不依赖于任何类实例。
静态成员通常仅用来跟踪与类相关的值。大多数情况下,你会考虑用实例属性,而不是类属性。
13.4.2 Methods
没有实例,方法是不能被调用的,这种限制即Python所描述的绑定概念(binding),在此,方法必须绑定到一个实例才能直接被调用。
13.4.3 决定类的属性
要知道一个类有哪些属性,有两种方法。最简单的是使用dir()内建函数。另外是通过访问类的字典属性__dict__。
13.4.4 特殊的类属性
__name__ 类的名字(字符串)
__doc__ 类的文档字符串
__bases__ 类的所有父类构成的元组
__dict__ 类的属性
__module__ 类定义所在的模块
__class__ 实例对应的类
>>> class C(object): ... pass ... >>> C.__name__ 'C' >>> C.__dict__ <dictproxy object at 0x00F6E850> >>> print C.__dict__ {'__dict__': <attribute '__dict__' of 'C' objects>, '__module__': '__main__', '__weakref__': <attribute '__weakref__' of 'C' objects>, '__doc__': None} >>> C.__doc__ >>> C.__bases__ (<type 'object'>,) >>> C.__module__ '__main__' >>> c = C() >>> c.__class__ <class '__main__.C'> >>>