python 面向对象六 类属性和实例属性
一、实例属性
Python是动态语言,根据类创建的实例可以任意绑定属性。
1 >>> class Student(object): 2 ... def __init__(self, name): 3 ... self.name = name # 每个实例必须的属性 4 ... 5 >>> s = Student('Jack') 6 >>> s.score = 90 # 任意绑定属性 7 >>> s.name 8 'Jack' 9 >>> s.score 10 90
二、类属性
直接在class中定义属性,这种属性是类属性,归Student
类所有。
1 >>> class Student(object): 2 ... name = 'Jack' # 类属性 3 ... 4 >>> Student.name # 获取类属性 5 'Jack' 6 >>> s = Student() 7 >>> s.name # 获取类属性 8 'Jack' 9 >>> s.name = 'Mike' # 添加实例属性 10 >>> s.name # 获取实例属性 11 'Mike' 12 >>> Student.name # 获取类属性 13 'Jack'
在编写程序的时候,千万不要对实例属性和类属性使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性,但是当你删除实例属性后,再使用相同的名称,访问到的将是类属性。