Почему после импортирования только одной функции модуля она видит другие объекты этого же модуля?

Допустим, в модуле my_library есть функция a, которая использует функцию b, объявленную в этом же модуле:

# my_library.py

def a():
    print("I'm function A and I'm running B inside me")
    b()

def b():
    print("I'm function B")

Я импортирую из модуля только функцию a:

from my_library import a

Почему a видит функцию b, которую я не импортирую и которая не определена внутри самой функции a?


Ответы (1 шт):

Автор решения: u111

Когда вы импортируете только функцию a, функция b никуда не девается. Создается новая область видимости со всеми переменными модуля, и одна функция этого модуля видит все другие переменные данного модуля.

→ Ссылка