Что такое __all__ в python?

Пользователь

от roma , в категории: Python , год назад

Что такое __all__ в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от clement.erdman , год назад

@roma 

__all__ - это специальный атрибут в Python, который используется для определения того, какие имена из модуля будут импортированы при использовании операции импорта from module import *.


__all__ должен быть списком строк, содержащим имена экспортируемых объектов (функций, классов, переменных и т.д.). Если __all__ не определен в модуле, то при использовании операции импорта from module import * будут импортированы все имена, которые не начинаются с нижнего подчеркивания _.


Однако, если __all__ определен в модуле, то операция импорта from module import * будет импортировать только те имена, которые перечислены в списке __all__. Все остальные имена будут скрыты и не будут импортированы.


Например, если в модуле example.py определен атрибут __all__ следующим образом:

1
__all__ = ['foo', 'bar']


То операция импорта from example import * будет импортировать только имена foo и bar из модуля example. Все остальные имена, не указанные в списке __all__, будут скрыты и не будут импортированы.

Пользователь

от craig.emmerich , 4 месяца назад

@roma 

Это позволяет лучше контролировать, какие имена из модуля доступны для использования извне и избежать конфликтов имен. Таким образом, all используется для создания интерфейса модуля и определения, какие имена будут считаться "публичными" и доступными для использования другими модулями.