Python面向物件程式設計之私有變數,私有方法原理與用法分析
阿新 • • 發佈:2020-03-24
本文例項講述了Python面向物件程式設計之私有變數,私有方法原理與用法。分享給大家供大家參考,具體如下:
私有變數,私有方法:
- python的私有化是為了規劃私有屬性,避免非相關的訪問【假如!我有老婆,你不能直接知道我老婆是誰,你只有問我才會知道,即我的私有屬性只有我知道】
- 在python中定義私有變數和私有方法只需要在變數名或函式名前加上 "__"兩個下劃線
在類內部的方法中使用時 self.__變數名或函式名。
- 實際上,如果真要訪問私有變數和私有方法,也是可以訪問的,因為實際上私有化的操作只是將變數或函式名更改了而已:
- 下例中由private_value變為了_A__private_value【即_類名__屬性名】,但為了保持私有性,不建議直接使用這種方法訪問
class A: _private=6 __private_value=5 def __private_func(self): print("hello") def get_private_value(self): return self.__private_value a=A() # print(a.__private_value)###報錯,找不到該屬性 print(a.get_private_value()) print(a._A__private_value)
- 下例中由private_value變為了_A__private_value【即_類名__屬性名】,但為了保持私有性,不建議直接使用這種方法訪問
-
私有化變數和方法的繼承:【子類不會繼承基類私有屬性,但仍然通過基類的函式來獲取或可以強行訪問】
class A: _private=6 __private_value=5 def __private_func(self): print("hello") def get_private_value(self): return self.__private_value class B(A): pass b=B() # print(b.__private_value)#報錯 print(b.get_private_value())#可以使用父類的方法來獲取私有屬性 print(b._A__private_value)#強制訪問還是可以的
更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python面向物件程式設計入門與進階教程》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》
希望本文所述對大家Python程式設計有所幫助。