У меня есть следующий файл app.py
Оператор импорта Python также автоматически импортирует зависимости?
class Baz():
def __init__(self, num):
self.a = num
print self.a
def foo(num):
obj = Baz(num)
и второй файл main.py
from app import foo
foo(10)
Запуск файла python main.py
дает правильный вывод.
Теперь во втором файле я просто импортирую функцию не класса, хотя для успешного выполнения моей функции также нужен класс.
При импорте функции Python автоматически импортирует все остальное, что необходимо для запуска этой функции, или автоматически выполняет поиск класса в текущем каталоге?
Это аккуратно. Поэтому я никогда не должен ставить несвязанный код в один файл, если я намерен просто загрузить одну функцию, потому что Python всегда будет компилировать весь файл, верно? –
@KartikAnand Python будет компилировать его только один раз в файл '.pyc', позже импорт просто выберет байт-код из того же файла' .pyc', пока вы снова не обновите файл '.py'. –
Итак, если я явно не импортирую 'Baz', могу ли я создать экземпляр, получив его от' __globals__', прикрепленного к функции? –