2014-10-09 3 views
2

У меня есть несколько внутренних функций в модуле. Поскольку модуль становится слишком большим, я хочу разделить эти внутренние функции на отдельный модуль «утилита» в том же пакете. Модуль утилиты будет содержать только внутренние функции пакета, которые не должны считаться частью общедоступного API пакета. Существует ли принятое соглашение об именах для таких внутренних модулей?Соглашение об именах для частных модулей

Интуитивно, я бы префикс имени модуля подчеркиванием. Тем не менее, это соглашение об именах для модулей C/C++ according to PEP8.

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

ответ

2

Я бы не сказал, что приставка подчеркивание применяется исключительно на C/C++ модули расширения. Скорее, такой модуль нередко предназначен для непосредственного использования, но предоставляет частную реализацию для модуля Python с тем же именем (см. socket/_socket). По этой логике я не понимаю, почему какой-либо модуль, не предназначенный для публичного использования (будь то на C или Python), не должен использовать префикс _.

1

Нет, насколько я знаю, но есть некоторые вещи, замеченные часто:

  • модуль с именем internal или internal_xyz
  • подпакет с именем internal, содержащий внутренние модули
  • подчеркивания, несмотря на то, что это означало для C модули. Я лично предпочитаю это для его короткого замыкания и потому, что все знают, что это значит.
Смежные вопросы