Полезные ссылки
- https://ru.hexlet.io/blog/posts/likbez-po-paketam-i-shpargalka-po-modulyam-v-python
Существует и возможность явно указать, что конкретное будет экспортировано при импорте со звёздочкой. Для управления названным методом импорта существует атрибут __all__
, в который можно положить список (а ещё лучше — кортеж) строк с именами, которые будут экспортироваться.
Живой пример видимости атрибутов модулей.
Рассмотрим пример, демонстрирующий всё вышеописанное. Пусть у нас будет два файла:
# Файл "module.py"
from other_module import CAT, DOG as _DOG, _GOAT
FISH = 'fish'
MEAT = 'meat'
_CARROT = 'carrot'
__all__ = ('FISH', '_CARROT')
# Файл "other_module.py"
CAT = 'cat'
DOG = 'dog'
_GOAT = 'goat'