15
A
回答
19
__...__
表示保留的Python 名稱(包括文件名和其他名稱)。您不應該使用雙下劃線符號發明您自己的名字;如果你使用現有的,他們有特殊的功能。
在此特定示例中,__init__.py
定義了包的「主」單位;它也會導致Python將特定目錄視爲一個包。當您撥打import cherryPy
(和是目錄)時,將使用該單位。這在Modules tutorial中有簡要解釋。
另一個例子是__eq__
方法,它提供了一個類的相等比較。您可以直接調用這些方法(例如,當您使用==
運算符時,可以隱式使用它們);然而,較新的Python版本可能會定義更多此類方法,因此您不應該創建自己的__
名稱,因爲它們可能會發生衝突。您可以在Data model文檔中找到相當詳細的此類方法列表。
_...
經常用作「內部」名稱。例如,不應直接使用以_
開頭的模塊;同樣,_
的方法被認爲是私人的,等等。這只是一個慣例,但你應該尊重它。
7
__init__.py
是一個特殊的文件,當存在於一個文件夾中時將該文件夾轉換爲模塊。在導入模塊後,__init__.py
被執行。另一個只是一個命名約定,但我想這會說你不應該直接導入該文件。
看看這裏:6.4. Packages關於如何創建模塊的解釋。
一般規則:如果Python中的任何內容都是namend __anything__
那麼它是很特別的,你應該在使用它之前閱讀它(例如魔術函數)。
11
這些和其它,命名約定中詳細Style Guide for Python Code - Descriptive: Naming Styles
簡言之:
__double_leading_and_trailing_underscore__
:「魔」的物體或生活在用戶控制的命名空間屬性。例如。__init__
,__import__
或__file__
。不要發明這樣的名字;只有按照記錄使用它們。_single_leading_underscore
:弱的「內部使用」指標。例如。from M import *
不導入名稱以下劃線開頭的對象。
相關問題
- 1. 屬性名稱的下劃線前綴?
- 2. 在Python中,實例變量前面的下劃線是什麼?
- 3. 以下劃線爲前綴的變量
- 4. Python命名中尾部下劃線的優點是什麼?
- 5. python文件名前的'./'是什麼?
- 6. 爲什麼是下劃線
- 7. 在C中,爲什麼某些函數名稱前綴爲「_ _」(雙下劃線)
- 8. 帶下劃線前綴的合成屬性和變量:這是什麼意思?
- 9. Swift實例變量下劃線前綴?
- 10. JavaScript中屬性和方法名的下劃線前綴
- 11. Python字典鍵/帶前綴的值 - 前綴是什麼?
- 12. 爲什麼把下劃線「_」變量名之前的目標C
- 13. 導入__module__ python:爲什麼下劃線?
- 14. 什麼是Perl中的雙下劃線?
- 15. ActionFilterAttribute.OnActionExecuted在json正文中使用下劃線的前綴屬性
- 16. 以下劃線開頭的文件是什麼意思?
- 17. 什麼是Swift的catch塊前面的_下劃線?
- 18. Java中的方法名稱之前的下劃線的含義是什麼?
- 19. 爲什麼Magento中的局部變量有一個下劃線前綴?
- 20. 沒有定義前綴的XML文檔的前綴是什麼?
- 21. C#中Excel接口名稱前的下劃線字符的含義是什麼?
- 22. 生成getter和setter無下劃線(未前綴/後綴)+蝕
- 23. 在PAWN中,函數前面的下劃線是什麼意思?
- 24. 這是一個約定前綴私人類與下劃線?
- 25. ASP.NET MVC文件的名稱下劃線
- 26. Mercurial/Python - 下劃線功能的作用是什麼?
- 27. 什麼是Python中的怪雙下劃線屬性(__attribute__)?
- 28. Python中的下劃線是什麼意思
- 29. 連接到類名的下劃線是什麼意思?
- 30. Python的前導下劃線_variables
你沒有明確禁止發明自己的名字。*不鼓勵*,因爲該語言將來可能會添加更多這樣的名稱,所以命名空間是保留的。使用'__...__'名字作爲自己的項目需要您自擔風險。 –
@MartijnPieters:好的,用'不應該'代替。 –