掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
python訪問私有方法的方法 :通過“實(shí)例類.類名_變量名”可對(duì)私有方法進(jìn)行訪問。
在python中,不像c#/java類語言,支持類的私有方法,這點(diǎn)有點(diǎn)像objc,雖然objc可以通過擴(kuò)展extension來實(shí)現(xiàn),但源于objc的運(yùn)行時(shí)特性,我們還是可以通過非常手段來進(jìn)行訪問的。不過這點(diǎn)說白了,好像c#中也可以通過指定BindingFlags.NonPublic的方式結(jié)合反射來調(diào)用。
假設(shè)有如下一個(gè)python類:
class Securityp(object): def __inaccessible(self):3 print "Bet you can't see me..."
而s是Securityp的一個(gè)實(shí)例,我們直接使用 s.__inaccessible()是會(huì)報(bào)錯(cuò)的,通過在一個(gè)方法前面加上兩個(gè)下劃線的方法來讓一個(gè)方法成為私有方法。
那我們應(yīng)該怎么來訪問這個(gè)所謂的私有方法呢,
s._Securityp__inaccessible()
上述代碼就可以讓我來訪問了。這是因?yàn)?,在python的解析器中,所有以雙下劃線開頭的方法都會(huì)被翻譯成前面加上單下劃線和類名的形式。
這樣我們就可以訪問類中私有方法了。
推薦課程:零基礎(chǔ)學(xué)Python語言CAP(嵩天教授)

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流