3小时入门Python——第十五课命名变量
如您所知,每个变量都有一个在其他变量中唯一标识它的名称。给变量起好名字可能并不像看起来那么简单。经验丰富的程序员非常注重命名,以使其程序易于理解。这很重要,因为程序员会花费大量时间阅读和理解其他程序员编写的代码。如果变量的名称不正确,那么几个月后您甚至看不到自己的代码。在本主题中,我们将考虑如何根据 Python 社区中建立的约定和最佳实践为变量选择好名称。
代码样式约定
PEP 8 为变量名称提供了一些规则,以提高代码的可读性。
- 使用小写和下划线来分割单词。即使是缩写。
http_response # yes!
httpresponse # no
myVariable # no, that's from Java
但是,如果要定义一个常量,通常会用所有大写字母写它的名字,然后用下划线将单词分开。通常,常量存储在称为模块的特殊文件中。尽管我们稍后会介绍,但这是一个小示例:
SPEED_OF_LIGHT = 299792458
- 避免将一个字母的名称容易与数字混合,例如“ l”(小写字母 el),“ O”(大写字母 oh)或“ I”(大写字母 eye)。
l = 1 # no
O = 100 # no, if you use this variable name further in your code it would look like zero
# Using Cyrillic instead of Latin can cause an evening of useless headache
# These are different variables!
copy = "I'm written in Latin alphabet" # yes!
сору = "And I'm written using the Cyrillic!" # no
- 如果最合适的变量名是某些 Python 关键字,请在其末尾添加下划线。
class_ = type(var) # yes!
klass = type(var) # no
有关名称的所有代码样式规则在 PEP 8 中进行了描述。
其他变量名最佳实践
还有许多编程语言共有的一些最佳实践。
- 选择一个有意义的名称。变量名必须可读且具有描述性,并应向读者解释将在其中存储哪种类型的值。
score # yes!
s # no
count # yes!
n # no
- 不要使用过于通用的名称。尝试选择一个可以解释变量含义的名称。但是不要太罗 y。通常 1-3 个字就足够了。
http_response # yes!
var1 # no
http_response_from_the_server # no, some words can be dropped
- 如果单词很长,请尝试找到最常见且最期望的简短形式,以便以后容易猜到。
output_file_path # yes!
fpath # no
output_flpth # no
- 避免从内置类型列表中使用名称。
str = 'Hello!' # no, because in the further code you can't use str type as it's overridden
注意,最后的最佳实践是特定于 Python 的。
结论
所有命名约定和最佳实践都是可选的,但强烈建议您遵循它们。正如我们在本课开始时提到的那样,它们使您和其他程序员对您的代码更具可读性和自我描述性。