【问题标题】:Should I start a helper function with underscore(s)? [duplicate]我应该用下划线开始一个辅助函数吗? [复制]
【发布时间】:2013-04-27 05:22:31
【问题描述】:

在一个模块中,我应该使用一个、两个或不使用下划线来表示用户应该调用的辅助函数吗?

【问题讨论】:

标签: python function module


【解决方案1】:

可能是一个下划线,但这取决于具体情况。

具体来说,Python 样式指南 (PEP 8) 说:

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

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

另请参阅此问题以获得更长的答案: What is the meaning of a single- and a double-underscore before an object name?

【讨论】:

  • 双下划线在模块中有什么特别的作用?与单下划线有何不同?
  • 是的,当它是类的一部分时 - 它会触发名称修改。请参阅文档以获取完整说明:docs.python.org/2/tutorial/…
  • 广义上讲,你使用它主要是为了防止子类轻易地重写方法。
【解决方案2】:

PEP-8, the Python Style Guide,建议使用单个前导下划线。

识别以下使用前导或尾随下划线的特殊形式(这些通常可以与任何大小写约定结合使用):

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

【讨论】:

    猜你喜欢
    • 2014-02-07
    • 2021-10-09
    • 2018-12-11
    • 2014-06-11
    • 2015-09-21
    • 1970-01-01
    • 2021-05-07
    • 2022-01-08
    • 1970-01-01
    相关资源
    最近更新 更多