华南俳烁实业有限公司

python

當前位置:中華考試網(wǎng) >> python >> python編程基礎(chǔ) >> 文章內(nèi)容

python私有屬性訪問不到嗎?

來源:中華考試網(wǎng)  [2020年11月6日]  【

  要了解私有屬性是否真的訪問不到,需要從Python是如何實現(xiàn)私有屬性入手。在Python中,會把雙下劃線的屬性變?yōu)開ClassName__PropertyName的形式,用代碼演示一下:

  class Foo(object):

  __bar = 123

  print(Foo._Foo__bar) # 123

  運行一下可以知道,正常輸出了__bar的值,但是不推薦這樣去訪問私有屬性,因為不同的Python解釋器對于私有屬性的處理不一樣。

  特例

  使用雙下劃線定義私有屬性,有一種特殊情況,當屬性后也有兩個下劃線的時候,這個屬性會被Python解釋器當做魔術(shù)方法,從而不做私有處理。

  class Foo(object):

  __bar__ = 123

  print(Foo.__bar__) # 123

  上面代碼輸出了123,證明Python解釋器并沒有把__bar__當做私有屬性。當定義私有屬性時,需要注意名字最后最多只能有一個下劃線。

  另一個特例

  假如定義的屬性名就叫__呢?不妨直接試一下:

  class Foo(object):

  __ = 123

  print(Foo.__) # 123

  可以發(fā)現(xiàn)名字叫__的屬性也不會被認為是私有屬性,名字是多個下劃線的屬性也不是私有屬性(比如_______)。

python課程免費試聽預約

  • 地區(qū):
  • 姓名:
  • 手機:
責編:fushihao
  • 會計考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學歷考試
思茅市| 密山市| 杭锦后旗| 玉屏| 肇源县| 灯塔市| 抚宁县| 阳泉市| 威信县| 石泉县| 绥宁县| 平阳县| 都兰县| 鄄城县| 清镇市| 双鸭山市| 汶川县| 大宁县| 濉溪县| 西乡县| 杭州市| 贵州省| 沙河市| 盐城市| 民勤县| 南木林县| 桦南县| 双鸭山市| 合山市| 闽清县| 河间市| 荣昌县| 连城县| 玉屏| 柞水县| 东明县| 香河县| 广宗县| 兰西县| 宜章县| 汉源县|