Почему подчеркивания лучше, чем дефисы для имен файлов? - PullRequest
48 голосов
/ 29 апреля 2010

С Навыки построения в Python :

"Имя файла, такое как exerc_1.py, лучше, чем имя execise-1.py. Мы можем одинаково хорошо запускать обе программы из командной строки, но имя с дефисом ограничивает нашу способность писать более крупные и сложные программы. . "

Почему?

Ответы [ 2 ]

62 голосов
/ 29 апреля 2010

Проблема здесь в том, что импорт файлов с дефис-минус (клавиша клавиатуры по умолчанию - ; U+002D) в их имени не работает, так как он представляет знаки минус в Python. Итак, если у вас был свой собственный модуль, который вы хотите импортировать, у него не должно быть дефиса в его имени:

>>> import test-1
  File "<stdin>", line 1
    import test-1
               ^
SyntaxError: invalid syntax
>>> import test_1
>>>

Большие программы, как правило, логически разделяются на множество разных модулей, поэтому цитата

имя с дефисом ограничивает нашу способность писать более крупные и сложные программы.

12 голосов
/ 29 апреля 2010

Из этого самого документа (с.368, раздел 30.2 «Определение модуля»):

Обратите внимание, что имя модуля должно быть допустимым именем Python ... Имя модуля может содержать только буквы, цифры и символы "_".

...