Ray*_*ega 719 python variables function naming-conventions
来自C#背景的变量和方法名称的命名约定通常是CamelCase或Pascal Case:
// C# example
string thisIsMyVariable = "a"
public void ThisIsMyMethod()
Run Code Online (Sandbox Code Playgroud)
在Python中,我已经看到了上面的内容,但我也看到了使用下划线:
# python example
this_is_my_variable = 'a'
def this_is_my_function():
Run Code Online (Sandbox Code Playgroud)
Python有更优选的,明确的编码风格吗?
S.L*_*ott 821
请参阅Python PEP 8.
函数名称应为小写,并根据需要用下划线分隔,以提高可读性.
只有在已经成为流行风格的情境中才允许使用mixedCase
变量...
使用函数命名规则:小写,必要时用下划线分隔,以提高可读性.
就个人而言,我与此不同,因为我也喜欢mixedCase过lower_case我自己的项目.
Joh*_*ade 644
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
类似的命名方案应该应用于a CLASS_CONSTANT_NAME
unm*_*ted 233
大卫·Goodger(在"代码就像Pythonista" 在这里)描述了PEP 8项建议如下:
joined_lower 用于函数,方法,属性,变量
joined_lower或者ALL_CAPS常数
StudlyCaps 对于课程
camelCase 只是为了符合已有的惯例
Jon*_*nik 41
正如Python Code的样式指南所承认的那样,
Python库的命名约定有点混乱,所以我们永远不会完全一致
请注意,这仅指Python的标准库.如果他们不能得到那种一致性,那么几乎没有希望对所有 Python代码都有一个普遍遵守的约定,是吗?
从那里开始,在这里讨论,我会推断,如果在跨越Python时继续使用例如Java或C#(明确且完善的)变量和函数的命名约定,这不是一个可怕的罪.当然,请记住,最好遵守代码库/项目/团队的主流风格.正如Python样式指南所指出的那样,内部一致性最重要.
随意将我视为异教徒.:-)和OP一样,我不是"Pythonista",不管怎样.
Suf*_*ori 19
进一步了解@JohnTESlade所回答的问题.谷歌的python风格指南有一些非常好的建议,
要避免的名称
\__double_leading_and_trailing_underscore__ names (由Python保留)命名惯例
CapWords类的名字,但lower_with_under.py对模块名称.尽管有许多现有的模块被命名CapWords.py,但现在不鼓励这样做,因为当模块恰好以类命名时,它会让人感到困惑.("等等 - 我写了import StringIO还是from StringIO import StringIO?")cry*_*ice 16
我个人尝试将CamelCase用于类,mixedCase方法和函数.变量通常是下划线(当我记得时).通过这种方式,我可以一目了然地告诉我究竟是在呼唤什么,而不是一切看起来都一样.
And*_*dré 15
大多数python人喜欢下划线,但即使我使用python已经超过5年了,我仍然不喜欢它们.他们看起来很难看,但也许这就是我头脑中的Java.
我只是喜欢驼峰更好,因为它适合与类的命名方式更好,感觉更符合逻辑具有SomeClass.doSomething()比SomeClass.do_something().如果你在python中查看全局模块索引,你会发现两者,这是因为它是来自各种来源的库的集合,这些库随着时间的推移而增长,而不是像Sun这样的公司用严格的编码规则开发的东西. .我会说底线是:使用你喜欢的任何东西,这只是个人品味的问题.
ale*_*ian 11
有一篇关于此的论文:http://www.cs.kent.edu/~jmaletic/papers/ICPC2010-CamelCaseUnderScoreClouds.pdf
TL; DR它说snake_case比camelCase更具可读性.这就是现代语言在任何可能的地方使用(或应该使用)蛇的原因.
小智 6
无论是在课堂上还是在课堂外:
变量和函数都是小写的,如下所示:
name = "John"
Run Code Online (Sandbox Code Playgroud)
def display(name):
print("John")
Run Code Online (Sandbox Code Playgroud)
如果它们超过一个单词,则用下划线“_”分隔,如下所示:
first_name = "John"
Run Code Online (Sandbox Code Playgroud)
def display_first_name(first_name):
print(first_name)
Run Code Online (Sandbox Code Playgroud)
并且,如果变量是常量,则它是大写的,如下所示:
FIRST_NAME = "John"
Run Code Online (Sandbox Code Playgroud)