知识点 - python 类的私有/保护 属性和方法
生活随笔
收集整理的這篇文章主要介紹了
知识点 - python 类的私有/保护 属性和方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
類的私有屬性:
__private_attrs:兩個下劃線開頭,聲明該屬性為私有,不能在類地外部被使用或直接訪問。 在類內部的方法中使用時 self.__private_attrs。類的方法:
在類地內部,使用def關鍵字可以為類定義一個方法,與一般函數定義不同,類方法必須包含參數self,且為第一個參數類的私有方法 :
__private_method:兩個下劃線開頭,聲明該方法為私有方法,不能在類地外部調用。 在類的內部調用 self.__private_methods?
?
默認情況下,Python中的成員函數和成員變量都是公開的(public),在python中沒有類似public,private等關鍵詞來修飾成員函數和成員變量。
在python中定義私有變量只需要在變量名或函數名前加上?”__“兩個下劃線,那么這個函數或變量就是私有的了。
在內部,python使用一種?name mangling 技術,將 __membername替換成 _classname__membername,也就是說,類的內部定義中,
所有以雙下劃線開始的名字都被"翻譯"成前面加上單下劃線和類名的形式。
? ? ?例如:為了保證不能在class之外訪問私有變量,Python會在類的內部自動的把我們定義的__spam私有變量的名字替換成為
_classname__spam(注意,classname前面是一個下劃線,spam前是兩個下劃線),因此,用戶在外部訪問__spam的時候就會
提示找不到相應的變量。 ? python中的私有變量和私有方法仍然是可以訪問的;訪問方法如下:
?
其實,Python并沒有真正的私有化支持,但可用下劃線得到偽私有。 ? 盡量避免定義以下劃線開頭的變量!
?
轉載于:https://www.cnblogs.com/caimengzhi/p/8522002.html
總結
以上是生活随笔為你收集整理的知识点 - python 类的私有/保护 属性和方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: unity(2017.3) C# 常用A
- 下一篇: websocket python爬虫_p