2013-05-02 111 views
1

在一个模块中,我应该使用一个,两个还是没有下划线表示一个帮助函数,用户应该调用而不是我应该用下划线开始一个辅助函数吗?

+0

单,双下划线的良好描述在这里,http://stackoverflow.com/questions/1301346/the-meaning-of-a-双下划线之前的对象名称在Python中 – 2013-05-02 21:47:04

回答

4

PEP-8, the Python Style Guide,建议一个单引号下划线。

以下使用前导或尾随下划线被识别特殊形式(这些一般可以用任何情况下常规组合):

  • _single_leading_underscore:弱“内部使用”指示器。例如。 from M import *不导入名称以下划线开头的对象。
  • ...
2

可能是一个单一的底线,但视情况而定。

具体而言,Python的设计指南(PEP 8)表示:

_single_leading_underscore:弱 “内部使用” 指示器。例如。从M import *不导入名称以下划线开头的对象。

__double_leading_underscore __double_leading_underscore:命名类属性时,调用名称修改(在类FooBar中,__boo变为_FooBar__boo;请参见下文)。

又见这个问题对一些更长的答案: What is the meaning of a single- and a double-underscore before an object name?

+0

在模块中,双下划线会有什么特别的作用?与单下划线有什么不同? – MarJamRob 2013-05-02 21:49:44

+0

是的,当它是班级的一部分时,它会触发名称修改。请参阅文档以获取完整说明:http://docs.python.org/2/tutorial/classes.html#private-variables-and-class-local-references – 2013-05-02 21:53:02

+1

一般而言,您主要使用它来防止小类覆盖该方法。 – 2013-05-02 21:53:56

相关问题