为什么下划线比连字符更适合文件名?

72 投票
2 回答
28844 浏览
提问于 2025-04-15 22:10

来自 《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
>>>

更大的程序通常会被逻辑上分成很多不同的模块,因此有一句话说:

带有连字符的名字限制了我们编写更大、更复杂程序的能力。

撰写回答