我应该何时在Python函数名称中的单词之间使用下划线(根据样式指南)?

时间:2013-04-03 03:58:54

标签: python coding-style

style guide表示应该使用下划线,但许多Python内置函数不能。下划线的标准应该是什么?我想与Python风格指南保持一致,但这个领域看起来有点模糊。是否有一个很好的经验法则,是基于我自己的判断,还是两种方式都不重要?

例如,我应该将我的函数isfoo()命名为与旧函数匹配,还是应将其命名为is_foo()以匹配样式指南?

2 个答案:

答案 0 :(得分:4)

样式指南由您决定:

  

函数名称应为小写,并根据需要用下划线分隔,以提高可读性。

换句话说,如果你想在你的方法名称中添加一个下划线会让它更容易阅读 - 一定要在那里继续扔一(或两个!)。如果您认为标准库中有足够的其他类似案例,请随意将其删除。 这里没有硬性规则(尽管其他人可能不同意这一点)。我认为 唯一被普遍接受的是你不应该为你的方法使用“CapWords”或“camelCase”。应该为课程保留“CapWords”,我不确定“camelCase”在任何地方都有优先权(虽然我可能错了)......

答案 1 :(得分:1)

  

样式指南说应该使用下划线,但许多Python内置函数不能。

使用内置isinstance()作为示例,this was written in 1997

PEP 8 -- Style Guide for Python Code wasn't published until 2001,可能会导致这种差异。

  

下划线的标准应该是什么?我想与Python风格指南保持一致,但这个领域看起来有点模糊。是否有一个很好的经验法则,是基于我自己的判断,还是两种方式都不重要?

<强> "When in doubt, use your best judgment."

这是一种风格指南,而非法律!请遵循适当的指南,牢记警告(强调我自己):

  

函数名称应为小写,并根据需要用下划线分隔单词以提高可读性

     

mixedCase只允许在已经是主流风格的情况下(例如threading.py),以保持向后兼容性

...因此

  

例如,我应该将我的函数isfoo()命名为与旧函数匹配,还是应将其命名为is_foo()以匹配样式指南?

你应该可能称之为isfoo(),以遵循类似功能的约定。它是可读的。 "Readability counts."