variables python命名规范驼峰 - Python中变量名和函数名的命名约定是什么?




python包命名规范 python驼峰 (10)

来自C#背景的变量和方法名称的命名约定通常是CamelCase或Pascal案例:

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

在Python中,我已经看到了上面的内容,但我也看到了下划线被使用:

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

是否有更适合Python的编码风格?


Answers

正如Python Code风格指南所承认的,

Python库的命名约定有点乱,所以我们永远不会得到完全一致的结果

请注意,这只是指Python的标准库 。 如果他们无法获得一致的结果,那么对于所有 Python代码一般遵守约定几乎没有什么希望,是吗?

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

随意将我解雇为异教徒。 :-)像OP一样,我不是“蟒蛇”,还没有。


请参阅Python PEP 8

函数名称应该是小写字母,必要时用下划线分隔单词以提高可读性。

mixedCase只允许在已经是主流风格的环境中使用

变量...

使用函数命名规则:必要时用小写字母分隔下划线,以提高可读性。

就我个人而言,我偏离这一点,因为我也喜欢mixedCase不是我自己的项目。



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

类似的命名方案应适用于CLASS_CONSTANT_NAME


我个人尝试将CamelCase用于类,混合方法和函数。 变量通常是下划线(当我记得时)。 通过这种方式,我可以一目了然地告诉我究竟是什么,而不是看起来一模一样。


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


如前所述,PEP 8表示使用lower_case_with_underscores来获取变量,方法和函数。

我更喜欢将lower_case_with_underscores用于变量,将mixedCase用于方法和函数使代码更加明确和可读。 因此,遵循Python的 “明显优于暗含”和“可读性计数”


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

  • 用于函数,方法,属性,变量的joined_lower

  • 用于常量的joined_lowerALL_CAPS

  • StudlyCaps for classes

  • camelCase只符合预先存在的约定


正如其他答案所显示的那样,PEP 8是PEP 8,但PEP 8只是标准库的样式指南,并且仅作为其中的福音。 对于其他代码,PEP 8最常见的偏差之一是变量命名,特别是对于方法。 尽管考虑使用mixedCase的代码量,但如果要进行严格的人口普查,最终可能会得到带有mixedCase的PEP 8版本,但没有单一的主流风格。 PEP 8几乎没有其他偏离,这很常见。


这是一篇小帖子,我写道:

http://sizeableidea.com/call-versus-apply-javascript/

var obj1 = { which : "obj1" },
obj2 = { which : "obj2" };

function execute(arg1, arg2){
    console.log(this.which, arg1, arg2);
}

//using call
execute.call(obj1, "dan", "stanhope");
//output: obj1 dan stanhope

//using apply
execute.apply(obj2, ["dan", "stanhope"]);
//output: obj2 dan stanhope

//using old school
execute("dan", "stanhope");
//output: undefined "dan" "stanhope"




python variables function naming-conventions