您好,登錄后才能下訂單哦!
方法一:
效果圖一:
代碼一:
# 定義一個矩形的類 class Rectangle: # 定義初始化方法 def __init__(self,width,height): self.hidden_width = width self.hidden_height = height # 定義獲取width、height的方法 def get_width(self): return self.hidden_width def get_height(self): return self.hidden_height # 定義修改width、height的方法 def set_width(self,width): self.hidden_width = width def set_height(self,height): self.hidden_height = height # 定義一個獲取矩形面積的方法 def get_area(self): return self.hidden_width * self.hidden_height # 創建Rectangle的實例 r_one = Rectangle(3,4) # 輸出打印 r_one的widh print(r_one.get_width()) # 輸出 3 # 輸出打印 r_one的area print(r_one.get_area()) # 輸出 12 # 改變width r_one.set_width(5) print(r_one.get_area()) # 輸出 20
方法二:
效果圖二:
代碼二:
# 可以為對象的屬性使用雙下劃線開頭,__xxx # 雙下劃線開頭的屬性,是對象的隱藏屬性,隱藏屬性只能在類的內部訪問,無法通過對象訪問 # 其實隱藏屬性只不過是Python自動為屬性改了一個名字 # 實際上是將名字修改為了,_類名__屬性名 比如 __name -> _Person__name class Person: def __init__(self,name): self.__name = name def get_name(self): return self.__name def set_name(self , name): self.__name = name p = Person('孫悟空') # print(p.__name) # 報錯:AttributeError: 'Person' object has no attribute '__name' #__開頭的屬性是隱藏屬性,無法通過對象訪問 p.__name = '豬八戒' # 這個設置無效,不會報錯 print(p._Person__name) p._Person__name = '沙和尚' print(p.get_name())
方法三: 常用的
效果圖三:
代碼三:
# 使用__開頭的屬性,實際上依然可以在外部訪問,所以這種方式一般不用 # 一般會將一些私有屬性(不希望被外部訪問的屬性)以_開頭 # 一般情況下,使用_開頭的屬性都是私有屬性,沒有特殊需要不要修改私有屬性 class Person: def __init__(self,name): self._name = name def get_name(self): return self._name def set_name(self,name): self._name = name p = Person('牛一') print(p._name)
以上這篇python隱藏類中屬性的3種實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。