Reputation: 31003
From Building Skills in Python:
A file name like
exercise_1.py
is better than the nameexercise-1.py
. We can run both programs equally well from the command line, but the name with the hyphen limits our ability to write larger and more sophisticated programs.
Why is this?
Upvotes: 78
Views: 31519
Reputation: 69722
The issue here is that importing files with the hyphen-minus (the default keyboard key -; U+002D
) in their name doesn't work since it represents minus signs in Python. So, if you had your own module you wanted to import, it shouldn't have a hyphen in its name:
>>> import test-1
File "<stdin>", line 1
import test-1
^
SyntaxError: invalid syntax
>>> import test_1
>>>
Larger programs tend to be logically separated into many different modules, hence the quote
the name with the hyphen limits our ability to write larger and more sophisticated programs.
Upvotes: 90
Reputation: 70202
From that very document (p.368, Section 30.2 'Module Definition'):
Note that a module name must be a valid Python name... A module's name is limited to letters, digits and "_"s.
Upvotes: 27