У меня есть вопрос о выходе из следующего кода:глобальные и локальные переменные заблуждением
def f():
global s
print(s)
s = "That's clear."
print(s)
s = "Python is great!"
f()
print(s)
Выход заключается в следующем:
Python is great!
That's clear.
That's clear.
Мой вопрос: Почему это самый последний выход (т. е. третий выход) также «Это понятно».
Как получилось, третий выход не «Python - это здорово!» , Я думал, что последнее утверждение из кода (т. Е. Print (s)) находится вне функции f(). Так что не следует печатать (ы) здесь, смотрим на переменную s, которая определена глобально? в этом случае глобально определенная переменная s будет ссылаться на значение «Python is great!», не так ли? Извините, мне нужно понять некоторые понятия. Я очень новичок в python. Может кто-то любезно объяснить эту простую концепцию.
Очевидно, что вы ошиблись в своем отступе, поэтому трудно ответить на ожидаемое поведение, не зная, что является правильным. – polku
Давайте возьмем летящее предположение и предположим, что, поскольку вы объявили '' 'глобальным, переопределение' '' в функции 'f' изменило глобальные' '' на 'That is clear' –
@John_w, я исправил ваш отступ, это очевидно в этом случае, но в целом попытайтесь опубликовать код точно в том же формате, что и локально. –