Как импорт одной функции зависит только от другой работы? - PullRequest
0 голосов
/ 03 июля 2018

Что если у нас есть модуль, который содержит две функции и мы импортируем только одну из них, будет ли работать другая? Например:

файл test.py

def a(x):print(x) def b():a(12)

У переводчика:

из теста импорта b

б ()

Он печатает 12. Как это возможно? Прошу прощения за плохое форматирование, это мой первый вопрос:).

1 Ответ

0 голосов
/ 03 июля 2018

Технически нет такой вещи как импорт одного имени из модуля; весь модуль импортируется, а затем одно или несколько имен копируются в локальное пространство имен. Ваш импорт примерно эквивалентен:

import test
b = test.b
del test

За исключением того, что ни один момент test никогда не находится в локальном пространстве имен (и впоследствии фактически не удаляется).

...