Python: именование модуля, который имеет имя с двумя словами

Я пытаюсь соединить действительно простой модуль с одним .py исходным файлом в нем и уже столкнулся с контрольно-пропускным пунктом. Я собирался назвать его scons-config но import scons-config не работает в Python. Я нашел это ТАК вопросом и посмотрел на руководство по стилю PEP8, но довольно изумлен, это не говорит о двух соглашениях о присвоении имен слова.

Что правильный путь состоит в том, чтобы иметь дело с этим?

  • имя модуля: SconsConfig? scons_config? sconsconfig? scons.config?
  • название единственного .py файла в нем: scons-config.py? scons_config.py?

править: Я действительно видел, что "использованию символов нижнего подчеркивания препятствуют", и это оставило меня в тупике: я должен использовать "sconsconfig" или "scons_config" (я предполагаю, что другие отсутствуют)?

65
задан Community 23 May 2017 в 12:18
поделиться

3 ответа

Если нужно, всегда используйте подчеркивание _.

Использование точки даже не сработает, иначе

from scons.config import whatever

сломается.

Но PEP 8 четко описывает это:

Имена пакетов и модулей

Модули должны иметь короткие, все строчные имена . Подчеркивания могут быть использованы в имени модуля, если это улучшает читабельность. Python пакеты должны также иметь короткие, все строчные имена, хотя использование подчеркиваний не рекомендуется.

UPDATE:

Чтобы непосредственно ответить на ваш вопрос: Я думаю, что sconsconfig подходит. Он не слишком длинный и вполне читабельный.

Но, честно говоря, я не думаю, что кто-то будет винить вас, если вы будете использовать подчеркивания, и ваш код будет работать при любом решении. Всегда есть определенный уровень, когда вас уже не должно так сильно волновать.

74
ответ дан 24 November 2019 в 15:28
поделиться

- нельзя. Символ используется для оператора минус. То же верно и для большинства языков программирования. Используйте _ или вообще ничего.

2
ответ дан 24 November 2019 в 15:28
поделиться

Во-первых, имя модуля совпадает с именем отдельного файла .py. Говоря языком Python, набор из нескольких файлов .py представляет собой пакет.

PEP-8 не рекомендует разделять имена пакетов символами подчеркивания. Краткий обзор моего каталога пакетов сайта показывает, что имена из нескольких слов обычно просто запускаются вместе (например, setuptools, sqlalchemy)

Имена модулей (то есть имена файлов) могут быть разделены символами подчеркивания (и я обычно делаю это, потому что я ненавижу имена, которые вместе взятые, так что вы вряд ли их прочитаете).

Используйте только строчные буквы (согласно PEP-8). Это позволяет избежать проблем при переходе от файловых систем с учетом регистра к файловым системам без учета регистра и наоборот.

16
ответ дан 24 November 2019 в 15:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: