Дело 1
x = 0
def set_x(n):
global x
if n%2==0:
x=n
else:
x = -1
set_x(10)
print(x)
Ожидаемый результат: 10
Фактический объем производства: 10
Этот вывод очень ожидаемый, и именно так ведет себя ключевое слово global
.
Дело 2
x = 0
def set_x(n):
if n%2==0:
global x
x=n
else:
x = -1
set_x(10)
print(x)
Ожидаемый результат: 0
Фактический объем производства: 10
Если мое понимание global
верно, то как ключевое слово global
для global x
в блоке if влияет на локальное ключевое слово x
в блоке else. Я считаю, что это два разных блока.
Есть ли объяснение этому поведению.