简单来说,类属性就是 类对象 所拥有的属性,它被 该类的所有实例对象 所共有。
类属性可以使⽤ 类对象 或 实例对象 访问。
以下列举两者的区别
1、实例不能对类属性进行修改,只能修改实例属性,如果强制修改类属性则会在实例中创建一个新的同名实例属性;
2、类没有实例属性;
3、类属性用于记录某一项需要保持不变的数据;
4、类属性的好处是,无需在实例化对象的时候单独为属性开辟一个内存空间,也就是说实例对象可以直接在类中引用这个属性数据。
class Dog(object):
tooth = 10
def __init__(self, name):
self.name = name # name是实例属性
jinmao = Dog()
hashiqi = Dog()
# 10 通过类来访问类属性
print(Dog.tooth)
# 报错:AttributeError: type object 'Student' has no attribute 'name'
print(Student.name)
# 修改类属性
Dog.tooth = 12
print(Dog.tooth) # 12
print(jinmao.tooth) # 12
print(hahsiqi.tooth) # 12
# 不能通过对象修改属性,如果这样操作,实则是创建了⼀个实例属性
jiinmao.tooth = 20
print(Dog.tooth) # 12
print(jinmao.tooth) # 20
print(hashiqi.tooth) # 12
123456789