来自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代码风格指南所承认的那样,

Python的命名约定 图书馆有点乱,所以我们 永远不能完全一致

注意,这只是指Python的标准库。如果他们不能保持一致,那么几乎没有希望为所有Python代码拥有一个普遍遵守的约定,不是吗?

从这一点,以及这里的讨论,我可以推断,如果一个人在过渡到Python时继续使用例如Java或c#的(清晰而完善的)变量和函数命名约定,这并不是一个可怕的罪恶。当然,要记住,最好是遵循代码库/项目/团队的流行风格。正如Python风格指南所指出的,内部一致性是最重要的。

尽管把我当异教徒看待吧。:-)和OP一样,我不是一个“Pythonista”,至少现在还不是。

其他回答

正如Python代码风格指南所承认的那样,

Python的命名约定 图书馆有点乱,所以我们 永远不能完全一致

注意,这只是指Python的标准库。如果他们不能保持一致,那么几乎没有希望为所有Python代码拥有一个普遍遵守的约定,不是吗?

从这一点,以及这里的讨论,我可以推断,如果一个人在过渡到Python时继续使用例如Java或c#的(清晰而完善的)变量和函数命名约定,这并不是一个可怕的罪恶。当然,要记住,最好是遵循代码库/项目/团队的流行风格。正如Python风格指南所指出的,内部一致性是最重要的。

尽管把我当异教徒看待吧。:-)和OP一样,我不是一个“Pythonista”,至少现在还不是。

我个人在用其他编程语言开发时使用Java的命名约定,因为它是一致的,易于遵循。这样我就不会一直纠结于使用什么约定,而这本来不应该是我项目中最难的部分!

无论是否在课堂上或在课堂外:

变量和函数小写,如下所示:

name = "John"
def display(name):
    print("John")

如果它们多于一个单词,则用下划线“_”分隔,如下所示:

first_name = "John"
def display_first_name(first_name):
    print(first_name)

并且,如果一个变量是一个常量,它是大写的,如下所示:

FIRST_NAME = "John"

大多数使用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.

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