Область видимости переменной внутри и снаружи функции различна.
Внутри определения функции она имеет собственную область видимости при назначении новых переменных.
Если вы намереваетесь переназначить глобальную переменную, Вы должны использовать оператор global
.
global x
Этот оператор означает
Когда я назначаю переменную в этой области функций, это не область функций, а глобальная область
Обратите внимание, что речь идет только о назначении , поэтому вам не нужно global
оператор использовать глобальные переменные.
В дополнение В большинстве случаев переназначение глобальной переменной не очень хорошая идея, поскольку она усложняет ваш код. Существует так много альтернатив.
Но, тем не менее, вы хотите сделать это, вы можете:
x = "glob"
def reg():
global x
print(x)
x = "loc"
print(x)
reg()
И, что касается первого примера,
Переназначение аргумента в функции не влияет за пределы функции .