day 6 類的屬性
阿新 • • 發佈:2018-01-28
ood 轉化 lov 下劃線 python 最好 pro pre prop 1:實例屬性:
最好在init(self,...)中初始化
內部調用時都需要加上self.
外部調用時用instancename.propertyname
2:類屬性(公有屬性):
在init()外初始化
在內部用classname.類屬性名調用
外部既可以用classname.類屬性名又可以用instancename.類屬性名來調用
如果創建實例的時候實例裏沒有這個屬性而公有屬性裏有,則會鏈接調用類屬性,否則會調用實例自己的屬性。
class Test(object): name = ‘hello word‘ a = Test() print Test.name # 通過類進行訪問 print a.name # 通過實例進行訪問 我們發現都是可以訪問的。 但是,如果我們試圖修改這個屬性的話: class Test(object): name = ‘hello word‘ a = Test() Test.name = ‘python good‘ # 通過類進行修改 print Test.name print a.name 我們發現兩者都修改成功了。 如果通過實例來修改屬性的話: class Test(object): name = ‘hello word‘ a = Test() a.name = ‘python good‘ # 通過實例進行修改 print Test.name print a.name Test.name沒有修改 成功 a.name成功修改
3:私有屬性:
1):單下劃線_開頭:只是告訴別人這是私有屬性,外部依然可以訪問更改
2):雙下劃線__開頭:外部不可通過instancename.propertyname來訪問或者更改
實際將其轉化為了_classname__propertyname
class Flylove: price = 123 def __init__(self): self.__direction = ‘go beijing .‘ zIng = ‘wait car,many person‘ if __name__ == ‘__main__‘: print Flylove.price fly = Flylove() print fly._Flylove__direction
上面代碼是直接訪問私有屬性的強制措施
day 6 類的屬性