来自c#背景,变量和方法名的命名约定通常是camelCase或PascalCase:
// C# example
string thisIsMyVariable = "a"
public void ThisIsMyMethod()
在Python中,我见过上面的情况,但我也见过使用下划线:
# python example
this_is_my_variable = 'a'
def this_is_my_function():
Python是否有更可取、更明确的编码风格?
来自c#背景,变量和方法名的命名约定通常是camelCase或PascalCase:
// 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只允许在已经是流行风格的上下文中使用(例如threading.py),以保持向后兼容性。
其他回答
如前所述,PEP 8要求对变量、方法和函数使用lower_case_with_下划线。
我更喜欢使用lower_case_with_下划线的变量和mixedCase的方法和函数,使代码更显式和可读。因此,遵循Python的“显式优于隐式”和“可读性很重要”的禅意。
There is PEP 8, as other answers show, but PEP 8 is only the styleguide for the standard library, and it's only taken as gospel therein. One of the most frequent deviations of PEP 8 for other pieces of code is the variable naming, specifically for methods. There is no single predominate style, although considering the volume of code that uses mixedCase, if one were to make a strict census one would probably end up with a version of PEP 8 with mixedCase. There is little other deviation from PEP 8 that is quite as common.
正如Python代码风格指南所承认的那样,
Python的命名约定 图书馆有点乱,所以我们 永远不能完全一致
注意,这只是指Python的标准库。如果他们不能保持一致,那么几乎没有希望为所有Python代码拥有一个普遍遵守的约定,不是吗?
从这一点,以及这里的讨论,我可以推断,如果一个人在过渡到Python时继续使用例如Java或c#的(清晰而完善的)变量和函数命名约定,这并不是一个可怕的罪恶。当然,要记住,最好是遵循代码库/项目/团队的流行风格。正如Python风格指南所指出的,内部一致性是最重要的。
尽管把我当异教徒看待吧。:-)和OP一样,我不是一个“Pythonista”,至少现在还不是。
编码风格通常是组织内部策略/约定标准的一部分,但我认为一般来说,all_lower_case_underscore_separator风格(也称为snake_case)在python中最常见。
David Goodger(在这里的“像Pythonista一样编码”中)描述了PEP 8的建议如下:
Joined_lower函数,方法, 属性、变量 joined_lower或ALL_CAPS for 常量 课程用的studlycap 骆驼案只符合 已有的约定