来自C#背景的命名约定变量和方法的名称通常是驼峰式或Pascal情况:

// C# example
string thisIsMyVariable = "a"
public void ThisIsMyMethod()

在蟒蛇,我看见上面的,但我也看到了强调被用于:

# python example
this_is_my_variable = 'a'
def this_is_my_function():

是否有一个更好的,明确的编码的风格蟒蛇?

有帮助吗?

解决方案

参见Python PEP 8

  

函数名称应为小写,   用下划线分隔的单词为   提高可读性所必需的。

     

仅在上下文中允许使用mixedCase   那已经很普遍了   式

变量...

  

使用功能命名规则:   小写,单词分隔   强调必要的强调   可读性。

就个人而言,我偏离了这一点,因为我也更喜欢 mixedCase 而非 lower_case 用于我自己的项目。

其他提示

Google Python样式指南具有以下约定:

  

module_name,package_name,ClassName,method_name,ExceptionName,   function_name,GLOBAL_CONSTANT_NAME,global_var_name,   instance_var_name,function_parameter_name,local_var_name

类似的命名方案应该应用于 CLASS_CONSTANT_NAME

大卫Goodger(在"代码就像一个Pythonista" 在这里,)介绍了PEP8的建议如下:

  • joined_lower 对于功能方法, 属性、变量

  • joined_lowerALL_CAPS 对于 常量

  • StudlyCaps

  • camelCase 只要符合 预现有公约

Python Code样式指南承认,

  

Python的命名约定   图书馆有点乱,所以我们会   从来没有完全一致

请注意,这仅指Python的标准库。如果他们无法那个一致,那么所有 Python代码的约定几乎没有什么希望呢?

从那以及这里的讨论中,我会推断,如果一个人继续使用,那么是一个可怕的罪。当交叉到Python时,Java或C#(明确且完善的)变量和函数的命名约定。当然,请记住,最好遵守代码库/项目/团队的主流风格。正如Python样式指南所指出的,内部一致性最重要。

随意将我视为异教徒。 :-)和OP一样,我不是“Pythonista”,至今还没有。

PEP 8 ,正如其他答案所示,但是PEP 8它只是标准库的样式指南,它只被视为福音书。 PEP 8对其他代码的最常见偏差之一是变量命名,特别是对于方法。没有单一的主导风格,虽然考虑到使用mixedCase的代码量,如果要进行严格的人口普查,最终可能会得到一个带有mixedCase的PEP 8版本。 PEP 8几乎没有其他偏差,这很常见。

如上所述,PEP 8说要使用 lower_case_with_underscores 来获取变量,方法和函数。

我更喜欢使用 lower_case_with_underscores 来获取变量,而使用 mixedCase 来获取方法和函数会使代码更加明确和可读。因此,遵循 Zen of the Python “明确胜过隐含”。和“可读性计数”

我个人尝试将CamelCase用于类,mixedCase方法和函数。变量通常是下划线(当我记得时)。通过这种方式,我可以一眼就看出我究竟在呼唤什么,而不是一切看起来都一样。

大多数python人更喜欢下划线,但即使我使用python已经超过5年了,我仍然不喜欢它们。他们看起来很难看,但也许这就是我头脑中的Java。

我更喜欢CamelCase,因为它更符合类命名的方式。让 SomeClass.doSomething() SomeClass.do_something()更合乎逻辑。如果你在python中查看全局模块索引,你会发现两者,这是因为它是来自各种来源的库的集合,这些库随着时间的推移而增长,而不是像Sun这样的公司用严格的编码规则开发的东西。 。我会说底线是:使用你喜欢的任何东西,这只是个人品味的问题。

还要什么@JohnTESlade有回答。 谷歌的蟒导风格 有一些漂亮整洁的建议,

名字,以避免

  • 单个字符的名称,除了计数器或迭代
  • 破折号(-)在任何包裹/模块的名字
  • \__double_leading_and_trailing_underscore__ names (保留的通过蟒蛇)

命名约定

  • "内部的"装置内部的一个模块或保护或私营内的一类。
  • 前添加一个单一的强调(_)有些与会者支持保护模块变量和功能(不包括进口*)。加上一个双人强调(__)的一个实例可变或方法的有效供应,使可变的方法或私人对其分类(用名称重整).
  • 地方有关的课程和高级别职能集中到一个模块。不像爪哇,没有必要限制自己的一类,每个模块。
  • 使用 CapWords 对于类名称,但是 lower_with_under.py 模块的名字。虽然有许多现有的模块名为 CapWords.py, 这是现在气馁,因为它是混乱的模块时,会发生被任命为后一类。("等着--我没写 import StringIOfrom StringIO import StringIO?")

准则源自Guido的建议 enter image description here

有一篇关于此的论文: http:// www .cs.kent.edu /〜jmaletic /纸/ ICPC2010-CamelCaseUnderScoreClouds.pdf

TL; DR它说snake_case比camelCase更具可读性。这就是现代语言在任何可能的地方使用(或应该使用)蛇的原因。

编码风格通常是组织内部策略/约定标准的一部分,但我认为通常,all_lower_case_underscore_separator样式(也称为snake_case)在python中最常见。

通常,遵循语言标准库中使用的约定。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top