Снова скрыть импорт внутри модуля 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: "Частный" модуль в пакете