为什么某些函数在函数名称前后都有下划线“ __”?
这种“强调”似乎经常发生,我想知道这是否是Python语言中的要求,还是仅仅是一个约定问题?
另外,有人可以说出并解释哪些函数倾向于带有下划线,以及为什么(__init__
例如)?
-
[描述性:命名样式](https://www.python.org/dev/peps/pep-0008/#descriptive-naming-
styles)
可以识别以下使用前划线或后划线的特殊形式(通常可以将它们与任何大小写惯例结合使用):
-
_single_leading_underscore
:“内部使用”指示器较弱。例如from M import *
,不导入名称以下划线开头的对象。 -
single_trailing_underscore_
:按惯例用于避免与Python关键字发生冲突,例如
Tkinter.Toplevel(master, class_='ClassName')
*
__double_leading_underscore
:在命名类属性时,调用名称修饰(在类FooBar内部,__boo
变为_FooBar__boo
;见下文)。*
__double_leading_and_trailing_underscore__
:位于用户控制的名称空间中的“魔术”对象或属性。例如__init__
,
__import__
或__file__
。请勿发明此类名称;仅按记录使用它们。请注意,带下划线和双下划线的名称本质上是为Python本身保留的:“切勿发明此类名称;仅按文档说明使用它们”。
-