python繼承關系中,類屬性的修改


class Grandfather(object):
    mylist = []
    def __init__(self):
        pass
class Father(Grandfather):
    pass

Grandfather.mylist = [1, 2, 3, 4]
print(Grandfather.mylist)
print(Father.mylist)
Father.mylist = ['a']
Grandfather.mylist = ['b']
print(Father.mylist)
print(Grandfather.mylist)
print(Father.mylist)

輸出結果:

[1, 2, 3, 4]
[1, 2, 3, 4]
['a']
['b']
['a']

從上面的實驗可以看出,子類繼承父類后,初始狀態下,繼承了父類的屬性。

當在子類中修改繼承過來的類屬性時,並不會修改父類的同名類屬性。以后只要是通過子類訪問該屬性,訪問的都是子類的屬性;

通過父類修改了父類屬性后,子類訪問該屬性時,會訪問父類修改后的屬性值。前提是子類沒有對該屬性重新賦值過,如果子類修改過該屬性,則會遵循上面的規則

 


免責聲明!

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



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