示例:
classperson:
def__init__
(self, name, age):
self.name =name
#在屬性的前面新增兩個'_',外部訪問,系統內部的除外
#預設的屬性名:__age => _person__age
self.__age =age
defeat(self):
print('
民以食為天')
#在方法的前面新增兩個'_'
def__inner
(self):
print('
私有方法,不想讓外部呼叫')
deftest(self):
#在類的內部可以訪問私有的屬性和方法
print(self.__age
) self.
__inner
()
p = person('
老王', 50)
#預設所有的屬性和方法都是公有的,就是在類的外面可以直接使用
p.eat()
(p.name)
#一下兩句會報錯,提示沒有相關的屬性或方法
#p.__inner()
#print(p.__age)
#print(p.__dict__)
#可以通過系統修改的名稱找到,但是強烈建議不要這樣使用
(p._person__age)
p._person__inner()
p.test()
class
man(person):
deftest(self):
#print(self.__age)
#self.__inner()
print('
子類無法使用父類私有的屬性和方法')
m = man('
木蓋', 24)
m.test()
python 許可權 Python變數訪問許可權控制
oop1.py檔案 user bin python class foo def bar self print ok def hello self,name print i am s name foo foo foo.bar foo.hello fred huang class foo def ini...
Python變數訪問許可權控制
oop1.py檔案 oop2.py檔案 另外雙下劃線變數,類本身可以訪問 變數,但是在其它作用域不行 可以通過 classname 變數來訪問 在函式方法內,class內,沒有用self修飾的變數 又為臨時變數,只在函式內部有效,obj不能訪問 區域性變數 在函式方法內,class內,沒有用self...
突破訪問許可權
我們在寫 的時候,按約定都是把成員資料放到private訪問區中,然後在通過相應的函式來訪問。那又有什麼樣的 可以突破訪問許可權來直接操作類中private區段中的成員資料呢?首先,我們想到了指標,對吧 指標可是萬能之王,然而也是萬惡之源。那我們就先來看看指標如何突破馬其諾防線的。先定義乙個測試類 ...