2 回答
TA贡献1864条经验 获得超2个赞
让我们检查一下 pylint 对类变量名称的看法。考虑以下代码示例:
# top-level constants for comparison
lowercase_var = 0
UPPERCASE_VAR = 1
CamelCaseVar = 2
def func():
# function local variables
lowercase_var2 = 0
UPPERCASE_VAR2 = 1
CamelCaseVar2 = 2
class ClassName:
# class variables
lowercase_var3 = 0
UPPERCASE_VAR3 = 1
CamelCaseVar3 = 2
pylint 的输出:
D:\tmp>pylint test.py
************* Module test
test.py:1:0: C0103: Constant name "lowercase_var" doesn't conform to UPPER_CASE naming style (invalid-name)
test.py:3:0: C0103: Constant name "CamelCaseVar" doesn't conform to UPPER_CASE naming style (invalid-name)
test.py:8:4: C0103: Variable name "UPPERCASE_VAR2" doesn't conform to snake_case naming style (invalid-name)
test.py:9:4: C0103: Variable name "CamelCaseVar2" doesn't conform to snake_case naming style (invalid-name)
test.py:7:4: W0612: Unused variable 'lowercase_var2' (unused-variable)
test.py:8:4: W0612: Unused variable 'UPPERCASE_VAR2' (unused-variable)
test.py:9:4: W0612: Unused variable 'CamelCaseVar2' (unused-variable)
test.py:12:0: R0903: Too few public methods (0/2) (too-few-public-methods)
------------------------------------------------------------------
Your code has been rated at 2.73/10 (previous run: 1.82/10, +0.91)
观察:
没有关于三个类变量名称中的任何一个的警告。这三个都是完全有效的。
大写名称通常用于顶级常量。可以对类变量使用大写命名约定,使它们看起来像一个常量值。如果您正在修改变量
DB.NUM_CONNECTIONS += 1
,最好选择另一种命名样式。snake_case 命名风格用于函数局部变量名和函数名,CamelCase 仅用于类名。类变量是一个变量,它不是一个类(而是属于一个类)。所以看起来最好选择snake_case。
最后两个意见是固执己见的,您可以不同意并做出自己的选择。好消息:您可以从三个选项中选择任何一个。
TA贡献1836条经验 获得超5个赞
您应该遵循 PEP8,但通常根据我的经验,公司/个人开发人员要么坚持使用驼峰式或蛇式,以进行打字约定。
Camel case 是一种类型书写,它将变量名的第二个单词大写,即:myPhoneBook,而不是蛇形大小写,它使用下划线分隔变量名中的单词,即:my_phone_book
找到一个适合你的,并坚持下去是个好主意。
全部大写的变量名通常是为环境变量保留的。
除此之外,不要使用关键字作为变量名。很多时候,人们会使用“list”作为变量名,这是非常危险的,因为“list”是Python原生提供的关键字。使用关键字作为变量意味着您正在有效地替换该关键字。
添加回答
举报