来自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是否有更可取、更明确的编码风格?


当前回答

David Goodger(在这里的“像Pythonista一样编码”中)描述了PEP 8的建议如下:

Joined_lower函数,方法, 属性、变量 joined_lower或ALL_CAPS for 常量 课程用的studlycap 骆驼案只符合 已有的约定

其他回答

大多数使用python的人更喜欢下划线,但即使我已经使用python 5年多了,我仍然不喜欢它们。我只是觉得它们很丑,但也许这就是我脑子里的爪哇。

I simply like CamelCase better since it fits better with the way classes are named, It feels more logical to have SomeClass.doSomething() than SomeClass.do_something(). If you look around in the global module index in python, you will find both, which is due to the fact that it's a collection of libraries from various sources that grew overtime and not something that was developed by one company like Sun with strict coding rules. I would say the bottom line is: Use whatever you like better, it's just a question of personal taste.

列宁告诉过……我也是来自Java/ c#世界的。还有SQL。 仔细审视我自己,试图找到第一眼就能理解的复杂结构的例子,比如列表字典中的列表,其中所有东西都是对象。 对我来说,骆驼语或它们的变体应该成为任何语言的标准。在复杂句中应保留下划线。

参见Python PEP 8:函数和变量名:

函数名应该是小写的,单词之间用下划线分隔,以提高可读性。 变量名遵循与函数名相同的约定。 mixedCase只允许在已经是流行风格的上下文中使用(例如threading.py),以保持向后兼容性。

如前所述,PEP 8要求对变量、方法和函数使用lower_case_with_下划线。

我更喜欢使用lower_case_with_下划线的变量和mixedCase的方法和函数,使代码更显式和可读。因此,遵循Python的“显式优于隐式”和“可读性很重要”的禅意。

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

它说snake_case比camelCase可读性更好。这就是为什么现代语言在任何可能的地方都使用(或应该使用)蛇。