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_lower
或ALL_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更具可读性。 这就是为什么现代语言尽可能使用(或应该使用)蛇。