Снова скрыть импорт внутри модуля Python через 'del'

Предполагая, что я хочу скрыть все детали реализации модуля, и даже добавления подчеркивания [1][2] недостаточно, существуют ли практические (или питонические) причины против использования del?

MyMod/__init__.py

import time
# m2.py with def tock(): ...
from . import m2 as tick

since_epoch = time.time
summer = time.daylight

# def myfn():
#     return time.ctime() # this fails of course

del time
del m2

__all__ = ['since_epoch', 'summer']

Сюда dir(mymod) показывает только API и mymod.tick.tock()/since_epoch() можно использовать (Ну почти: mymod.tick выдает тот факт, что когда-то он был назван m2.)

Это полезно для отображения только соответствующих предложений в интерактивной оболочке Python, см. python3 -i -c "import mymod; print(dir(mymod))" затем >>> mymodule.<TAB>,

1: Скрыть внешние модули при импорте модуля (например, в отношении завершения кода) / 2: Python: "Частный" модуль в пакете

0 ответов

Другие вопросы по тегам