PYTHON中對象命名的單底線與雙底線的區別(私人和保護)

來源:互聯網
上載者:User

Python中用單雙底線作為變數首碼和尾碼指定特殊變數的意義

_name 不能用'from moduleimport *'匯入
__name__ 系統定義名字
__xxx 類中的私人變數名 因為底線對解譯器有特殊的意義,而且是內建標識符所使用的符號 變數名_xxx被看作是“私人 的”,在模組或類外不可以使用。當變數是私人的時候,用_xxx 來表示變數是很好的習慣。因為變數名xxx對python 來說有特殊含義,對於普通的變數應當避免這種命名風格。 “單底線開頭” 的成員變數叫做保護變數,意思是只有類對象和子類對象才能訪問到這些變數。 “雙底線開頭” 的是私人成員,意思是只有類對象自己能訪問,連子類對象也不能訪問到這個資料。 以單底線開頭(_func)的代表不能直接存取的類屬性,需通過類提供的介面進行訪問,不能用“from name import *”而匯入;以雙底線開頭的(func)代表類的私人成員;以雙底線開頭和結尾的(__foo)代表python裡特殊方法專用的標識,如 init(),del( ), new這些代表類的建構函式。

1、_name 不能用於’from module import *’ 以單底線開頭的表示的是protected類型的變數。即保護類型只能允許其本身與子類進行訪問。

2、__name 雙底線的表示的是私人類型的變數。只能是允許這個類本身進行訪問了。連也是子類也不可以的。

3、name_ 定義的是特列方法。像initdel之類。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.