類屬性和實例屬性的區別


來自: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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM