Raddzor788
@Raddzor788

Откуда эти 2 значения?

x = 99
def f1():
    global x
    x = 100
    
def f2():
    import pop
    glob = pop.x = x + 1
    
f1()
f2()
print(x, ' global module')

результат:
101
100

откуда эти 2 значения? почему второе значения = 100?
может кто подробно объяснить
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ответы на вопрос 1
@o5a
В вопросе приводите все скрипты. В данном случае в коде не привели pop.py, который импортируете, не известно, что он у вас делает. Да и в целом приведенный код и результат вывода не соответствуют. Приводите как оно реально есть, чтобы не возникало недопониманий.

Судя по результатам, pop.py возможно содержит что-то такое
x = 101
print(x)

В таком случае результат был бы похож на приведенный.
Соответственно первое значение 101 получается в момент вызова
import pop
при работе f2()
т.к. импорт по сути запускает срабатывание всего, что написали в том скрипте, как если бы вы его запустили вручную. И результат 101 пришел из модуля

А второе значение 100 уже получается как результат
print(x)
где x - глобальная переменная, которую выставили в это значение в f1.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы