У меня есть модуль test.py
следующим образом:Как именно из ... импорт ... работает?
def a():
return "Hey!"
def b():
return a()
В другом модуле, я импортировал функцию b
следующим образом:
from test import b
Теперь, когда я print b()
во втором модуле, я получаю Hey!
как выход. Но, учитывая, что я импортировал только функцию b
, а не a
, я ожидал, что NameError.
Задает ли оператор from x import y
все зависимые функции и переменные от y
от x
?
Единственное отличие между двумя утверждениями заключается в том, какое имя связано; import test связывает тест имени с модулем (например, test -> test.modules ['test']), тогда как из test import 'b' связывает другое имя, b, указывая прямо на атрибут, содержащийся внутри модуля (Например, b -> test.modules ['test']. B). Остальная часть тестового модуля все еще существует, проверьте эту ссылку [Проверить эту ссылку] (http://programmers.stackexchange.com/questions/187403/import-module-vs-from-module-import-function/187471) – Vaibhav