Python中variables名和函数名的命名约定是什么?

来自C#背景variables和方法名称的命名约定通常是CamelCase或Pascal案例:

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

在Python中,我已经看到了上面的内容,但是我也看到了下划线的使用:

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

是否还有更适合Python的编码风格?

请参阅Python PEP 8 。

函数名称应该是小写的,必要时用下划线分隔单词以提高可读性。

mixedCase只允许在已经是主stream风格的环境中使用

variables…

使用函数命名规则:小写字母,必要时用下划线分隔,以提高可读性。

就个人而言,我偏离这一点,因为我也喜欢mixedCase over 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

David Goodger(在“像Pythonista一样的代码”中)描述了PEP 8的build议如下:

  • joined_lower函数,方法,属性,variables

  • joined_lowerALL_CAPS常量

  • StudlyCaps for classes

  • camelCase只符合预先存在的约定

正如其他答案所显示的那样,还有PEP 8,但是PEP 8只是标准库的风格指南,只是作为其中的福音。 对于其他代码,PEP 8的最常见的偏差之一是variables命名,特别是对于方法。 尽pipe考虑使用mixedCase的代码量,但如果要进行严格的人口普查,那么最终可能会得到一个带有mixedCase的PEP 8版本。 与PEP 8很less有其他的偏差,这很常见。

正如Python Code的风格指南所承认的,

Python库的命名规则有点乱,所以我们永远不会得到完全一致的结果

请注意,这只是指Python的标准库 。 如果他们不能保持一致,那么对于所有的 Python代码都有一个普遍遵守的约定,那么这里就没有多less希望了。

从这里以及这里的讨论中,我会推断出,如果一个人在跨越Python时继续使用Java或C#的(明确的,完善的)variables和函数的命名约定,这并不是一个可怕的罪过。 记住,当然,最好是遵守代码库/项目/团队的stream行风格。 正如Python风格指南指出的, 内部一致性最重要。

随意把我解雇为异教徒。 :-)像OP一样,我不是“python”,还没有。

如上所述,PEP 8说使用lower_case_with_underscores来表示variables,方法和函数。

我更喜欢使用lower_case_with_underscores作为variables,而使用mixedCase作为方法和函数使代码更加明确和可读。 因此,遵循Python的 “明显优于暗含”和“可读性计数”

我个人尝试将CamelCase用于类,混合方法和函数。 variables通常是下划线(当我记得的时候)。 通过这种方式,我可以一目了然地知道我打来的是什么,而不是看起来一模一样。

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

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

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

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

有一篇关于这个的文章: http : //www.cs.kent.edu/~jmaletic/papers/ICPC2010-CamelCaseUnderScoreClouds.pdf

如果你懒读的话,说snake_case比camelCase更具可读性。 这就是为什么现代语言尽可能使用(或应该使用)蛇。