У него есть два целя:
Любой, кто читает Источник узнает, что такое открытое общественное API. Это не предотвратить их из топки в частных декларациях, но обеспечивает хорошее предупреждение, а не.
При использовании от Mod Import *
, только имена, перечисленные в __ все __
. Это не так важно, на мой взгляд, потому что импортируя все действительно плохое представление.
Это контролирует то, что вы попадаете в вашу nameps, когда вы
from blah import *
http://docs.python.org/tutorial/modules.html#importing-from-a-package
Что происходит, когда пользователь пишет.
от импорта звуковых эффектов *
? В идеале, можно было бы надеяться, что это как-нибудь пройдет в файловую систему, находит, кто Субмодули присутствуют в упаковке, и импортирует их все. Это может потребовать долгое время и импорт субмодулей могут иметь нежелательные побочные эффекты, которые должно происходить только тогда, когда субмодуль явно импортируется.Единственное решение для пакета - автор предоставляет явный указатель посылку. Импортная ведомость использует следующая конвенция: если код пакета
__init__.py
определяет a список с именем__all__
, считается. список названий модулей, которые должны импортируется при импортеиз упаковки *
. встречается. Это зависит от автор пакета, чтобы сохранить этот список актуальный, когда новая версия пакет выпущен. Авторы пакета может также принять решение не поддерживать его, если они не видят смысла в импорте * из их пакета.