Инициализирует ли он класс?
Нет, он просто дает вашей программе доступ к этому классу - готов к созданию экземпляра объекта, когда вы захотите (тогда он вызовет __init__
метод).
Импортирует ли он пакет, даже если мы не инициализируем класс из другого файла?
Да. Вы можете видеть это так, как если бы вы просто набрали import bar
, тогда вы сможете получить доступ к импортированному модулю тензорного потока с помощью bar.tensorflow
, то есть он фактически импортируется, даже если в модуле нет ничего .
В вашем конкретном c случае простого импорта foo
из bar
мы все равно можем получить доступ к тензорному потоку через встроенный пакет inspect
, который даст нам ссылку на bar
и таким образом .tensorflow
из foo
.
import inspect
from bar import foo
print(inspect.getmodule(foo).itertools) #<module 'itertools' (built-in)>
Я не уверен, есть ли более простой способ "добраться" до bar
из foo
без использования inspect
, но это то, что я нашел для полного объяснения вашего случая!