“像exercise_1.py这样的文件名比execise-1.py更好。我们可以从命令行同样运行这两个程序,但带连字符的名称限制了我们编写更大更复杂程序的能力。”
为什么?
这里的问题是导入名称中带有破折号的文件不起作用,因为破折号是python中的减号。因此,如果您想要导入自己的模块,则其名称中不能包含短划线:
>>> import test-1
File "<stdin>", line 1
import test-1
^
SyntaxError: invalid syntax
>>> import test_1
>>>
较大的程序往往在逻辑上分成许多不同的模块,因此引用
带连字符的名称限制了我们编写更大更复杂程序的能力。
从该文件(第368页,第30.2节“模块定义”):
请注意,模块名称必须是有效的Python名称...模块的名称仅限于字母,数字和“_”。