为什么下划线比连字符更适合文件名?
来自 《Python技能提升》:
像
exercise_1.py
这样的文件名比exercise-1.py
更好。我们可以在命令行中同样顺利地运行这两个程序,但带有连字符的名字会限制我们编写更大、更复杂程序的能力。
这是为什么呢?
2 个回答
24
来自那份文档(第368页,第30.2节“模块定义”):
注意,模块名称必须是一个有效的Python名称……模块的名称只能包含字母、数字和下划线“_”。
84
这里的问题是,如果你想导入文件名中带有连字符(也就是键盘上默认的 - 键,Unicode编码是 U+002D
),在Python中是行不通的,因为它会被当作减号来处理。所以,如果你有自己的模块想要导入,文件名里就不要有连字符:
>>> import test-1
File "<stdin>", line 1
import test-1
^
SyntaxError: invalid syntax
>>> import test_1
>>>
更大的程序通常会被逻辑上分成很多不同的模块,因此有一句话说:
带有连字符的名字限制了我们编写更大、更复杂程序的能力。