程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python私有變量與私有方法

編輯:Python

python的私有化是為了規劃私有屬性,避免非相關的訪問【假如!我有老婆,你不能直接知道我老婆是誰,你只有問我才會知道,即我的私有屬性只有我知道】

在python中定義私有變量和私有方法只需要在變量名或函數名前加上 "__"兩個下劃線


在類內部的方法中使用時 self.__變量名或函數名。

實際上,如果真要訪問私有變量和私有方法,也是可以訪問的,因為實際上私有化的操作只是將變量或函數名更改了而已:

  • 下例中由private_value變為了_A__private_value【即_類名__屬性名】,但為了保持私有性,不建議直接使用這種方法訪問
''' 學習中遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群裡還有不錯的視頻學習教程和PDF電子書! '''
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)

私有化變量和方法的繼承:【子類不會繼承基類私有屬性,但仍然通過基類的函數來獲取或可以強行訪問】

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)#強制訪問還是可以的

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved