python中私有属性无法访问的原理_python私有属性访问不到吗?
之前我們講過了訪問限制的三種級別。分別是公有、私有和受保護。那么,私有屬性真的不能訪問嗎?今天我們就來一起測試一下吧。
要了解私有屬性是否真的訪問不到,需要從Python是如何實現私有屬性入手。在Python中,會把雙下劃線的屬性變為_ClassName__PropertyName的形式,用代碼演示一下:class?Foo(object):
__bar?=?123
print(Foo._Foo__bar)??#?123
運行一下可以知道,正常輸出了__bar的值,但是不推薦這樣去訪問私有屬性,因為不同的Python解釋器對于私有屬性的處理不一樣。
特例
使用雙下劃線定義私有屬性,有一種特殊情況,當屬性后也有兩個下劃線的時候,這個屬性會被Python解釋器當做魔術方法,從而不做私有處理。class?Foo(object):
__bar__?=?123
print(Foo.__bar__)??#?123
上面代碼輸出了123,證明Python解釋器并沒有把__bar__當做私有屬性。當定義私有屬性時,需要注意名字最后最多只能有一個下劃線。
另一個特例
假如定義的屬性名就叫__呢?不妨直接試一下:class?Foo(object):
__?=?123
print(Foo.__)??#?123
可以發現名字叫__的屬性也不會被認為是私有屬性,名字是多個下劃線的屬性也不是私有屬性(比如_______)。
以上就是python私有屬性訪問的一些測試。更多Python學習推薦:云海天Python教程網。
總結
以上是生活随笔為你收集整理的python中私有属性无法访问的原理_python私有属性访问不到吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像各种评价指标
- 下一篇: 互联网资质之增值电信业务经营许可证办理条