python 类里面的单下划线与双下划线的区别(私有和保护) .
Python 用下劃線作為變量前綴和后綴指定特殊變量。
_xxx 不能用'from moduleimport *'導入
__xxx__ 系統定義名字
__xxx 類中的私有變量名
核心風格:避免用下劃線作為變量名的開始。
因為下劃線對解釋器有特殊的意義,而且是內建標識符所使用的符號,我們建議程序員避免用下劃線作為變量名的開始。一般來講,變量名_xxx被看作是“私有 的”,在模塊或類外不可以使用。當變量是私有的時候,用_xxx 來表示變量是很好的習慣。因為變量名__xxx__對Python 來說有特殊含義,對于普通的變量應當避免這種命名風格。
"單下劃線" 開始的成員變量叫做保護變量,意思是只有類對象和子類對象自己能訪問到這些變量;
"雙下劃線" 開始的是私有成員,意思是只有類對象自己能訪問,連子類對象也不能訪問到這個數據。
以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用“from xxx import *”而導入;以雙下劃線開頭的(__foo)代表類的私有成員;以雙下劃線開頭和結尾的(__foo__)代表python里特殊方法專用的標識,如 __init__()代表類的構造函數。
?
結論:
1、_xxx 不能用于’from module import *’ 以單下劃線開頭的表示的是protected類型的變量。即保護類型只能允許其本身與子類進行訪問。
2、__xxx 雙下劃線的表示的是私有類型的變量。只能是允許這個類本身進行訪問了。連子類也不可以
3、__xxx___ 定義的是特列方法。像__init__之類的
轉載于:https://blog.51cto.com/7625504/1747510
總結
以上是生活随笔為你收集整理的python 类里面的单下划线与双下划线的区别(私有和保护) .的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给 c# 程序员的十个重要提示
- 下一篇: Tyvj P1463 智商问题 分块