來自:https://blog.csdn.net/sehanlingfeng/article/details/92415782
# 類屬性和實例屬性 class Student: count = 10 # count是類屬性 def __init__(self, name): self.name = name # name是實例屬性 print(Student.count) # 10 通過類來訪問類屬性 # print(Student.name) # 報錯:AttributeError: type object 'Student' has no attribute 'name' s1 = Student("xiaoming") print(s1.name) # xiaoming 必須通過實例來訪問實例屬性name print(s1.count) # 10 實例也可以訪問類屬性 # 通過實例更改類屬性的值,不影響類訪問類屬性的值 s1.count = 50 print(s1.count) # 50 實例更改類屬性的10為50 print(Student.count) # 10 通過類訪問count的值,發現還是原來的10,並沒有被改成50 # 通過類更改類屬性的值,不影響實例訪問類屬性的值 Student.count = 33 print(s1.count) # 50 實例訪問類屬性值為上次更改的值50,不是類更改的值33 print(Student.count) # 33 類訪問類屬性的值是被更改的33 # 另外實例化一個對象,其值不是默認值,而是上次由類更改類屬性后的值 s2 = Student("xiaohua") print(s2.count) # 33 此處對象訪問的count值為33,而不是默認值10,也不是之前由對象更改的值50 print(Student.count) # 33 這里也是33,而不是默認值10