参考:实例属性和类属性
NOTE
Python是动态语言,根据类创建的实例可以任意绑定属性。
class Student(object):
def __init__(self, name):
self.name = name
a = Student('Chen')
a.score = 90
同时,也可以直接给类绑定一个属性:
class Student(object):
name = 'Student'
当我们定义了一个类属性后,这个属性虽然归类所有,但类的所有实例都可以访问到。
>>> class Student(object):
... name = 'Student'
...
>>> s = Student()
>>> print(s.name)
Student
>>> print(Student.name)
Student
>>> s.name = 'Chen'
>>> print(s.name)
Chen
>>> del s.name
>>> print(s.name)
Student
当对象也定义了一个同名的属性时,会将原有的类属性覆盖掉,当删除对象的这个属性时,再次访问就会访问到类属性。
所以类属性一般不和对象的属性重名。
2017/2/28