Вы можете определить, какие объекты, функции и классы будут импортированы с помощью import *
из вашего модуля с помощью __all__
в начале вашего модуля, добавив:
__all__ = []
Все, что вы помещаете в этот список, можно импортировать с помощью from yourmodule import *
. Ко всему остальному, что не имеет имени, все еще можно получить доступ с помощью yourmodule.objectname
.
Пример: Предположим, у вас есть 2 функции в вашем модуле. Например:
def foo():
print("Foo")
def bar():
print("Bar")
Импорт * из вашего модуля приведет к импорту foo
и bar
.
Если вы добавите __all__ = ['foo']
, то import *
будет импортировать только foo
. И если вы добавите __all__ = []
, то import *
ничего не должно импортировать.
Изменить: если вы оставите список пустым, ничего не будет импортировано, однако, если вы хотите, чтобы возникла ошибка, чтобы пользователи понимали, что вы не хотите разрешать импорт *, затем добавьте одну запись, которая завершится ошибкой, например: __all__=['NO_WILDCARD_IMPORT_ALLOWED']
.