Добрый день!
Используя конструкцию вида:
from a import *
Но не используя все классы/функции и т.п. из a, можно ли сказать, что это влияет на скорость работы программы, на количество требующейся памяти? Или для python это не страшно?
Добрый день!
Используя конструкцию вида:
from a import *
Но не используя все классы/функции и т.п. из a, можно ли сказать, что это влияет на скорость работы программы, на количество требующейся памяти? Или для python это не страшно?
Вообще-то время выполнения будет примерно одно и тоже, за исключением того, что используя конструкцию from smth import * в локальном контексте будут созданы ссылки на все объекты определенные в smth. "Каскадный импорт до упора" в любом случае произойдет.
Используя конструкцию from smth import *, если у вас там действительно очень много объектов и суб-объектов, повлияет на время выполнения - интерпретатор будет бегать по файлам выискивая все "зависимости" и создавая ссылки на объекты.
Для того, чтобы точно определить список импортируемых объектов и не допустить "каскадного импорта до упора", существует директива __all__
x=1). Но привязывание имён ничего не импортирует, никакого "каскадного импорта нет". См. Неявный импорт в python – jfs May 19 '18 at 11:12