Python中变量和函数的命名规范是什么?

1083 投票
15 回答
806019 浏览
提问于 2025-04-11 09:26

如果你是从C#这个语言过来的,通常在命名变量和方法的时候,会用到两种风格:一种是camelCase(驼峰式命名),另一种是PascalCase(帕斯卡命名)。

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

在Python这门语言里,我见过上面提到的命名方式,但我也看到过snake_case(蛇形命名)这种风格:

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

那么,Python有没有更推荐的、明确的编码风格呢?

15 个回答

303

David Goodger 在《像 Pythonista 一样编程》一文中(可以在这里找到)提到了 PEP 8 的一些建议,具体如下:

  • 函数、方法、属性和变量用 joined_lower 这种命名方式。

  • 常量可以用 joined_lower 或者 ALL_CAPS

  • 类的命名用 StudlyCaps

  • 只有在遵循已有的命名规则时才使用 camelCase

1085

谷歌的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

类似的命名规则也应该用在CLASS_CONSTANT_NAME上。

1140

请查看Python的PEP 8: 函数和变量命名

函数的名字应该是小写字母,单词之间用下划线分隔,这样可以让人更容易读懂。

变量的命名规则和函数的命名规则是一样的。

在某些情况下,可以使用混合大小写,但这只在已经普遍使用这种风格的地方(比如threading.py)才允许,这样可以保持与旧版本的兼容性。

撰写回答