Страницы

Поиск по вопросам

четверг, 4 октября 2018 г.

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

Объясните, пожалуйста, что такое __all__ (я так понимаю, это некий список), в каких случаях он используется в Python и как это применяется при импортировании? Читаю Бизли, но там как-то мудрёно написано и пример непонятный, я не понял, честно говоря. Гугление тоже особо не помогло...


Ответ

__all__ в Pythone - это список публичных объектов данного модуля. Т.е, допустим, у вас есть некий mymodule.py, в нем описано очень много объектов, и не требуется давать пользоваться ими всеми со стороны. В __all__ в mymodule.py вы списком определяете названия объектов, которые можно импортировать (__all__ = ["MyClass", "MyClass2"]). Т.е., например при from mymodule import * импортированы будут только те объекты, которые вы описали в __all__ Возможно, директиву __all__ правильно будет назвать одним из уровней инкапсуляции в Python.

Комментариев нет:

Отправить комментарий