Подтвердить что ты не робот

Python: имя модуля, имеющего имя из двух слов

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

Какой правильный способ справиться с этим?

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

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

4b9b3361

Ответ 1

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

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

from scons.config import whatever

сломается.

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

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

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

UPDATE:

Чтобы прямо настроить ваш вопрос: я думаю, что sconsconfig в порядке. Это не слишком долго и вполне читаемо.

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

Ответ 2

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

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

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

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

Ответ 3

Помимо PEP-8, вы также можете узнать, как справиться с этой проблемой с помощью собственных модулей Python.

Если бы вы сравнили родные модули Python 2 с что Python 3, вы увидите, что новая тенденция с официальными разработчиками заключается в том, чтобы избежать прописных и подчеркивающих. Например, ConfigParser в Python 2 становится ConfigParser в Python 3.

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

Ответ 4

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