Я начал изучать python и заметил что-то странное с глобальными переменными и областью видимости. Когда я запускаю это:
x = 2
y = 3
z=17
def add_nums():
y = 6
return z+y
Результат 23 печатается... Однако, когда я расширяю возврат, чтобы быть:
x = 2
y = 3
z=17
def add_nums():
y = 6
z = z + y
return z
Я получаю следующую ошибку в строке 6:
Local name referenced but not bound to a value.
A local name was used before it was created. You need to define the
method or variable before you try to use it.
Я не понимаю, почему я получаю здесь ошибку, поскольку z является глобальным и доступным.
global
после имени функции, python в этом случае предполагается, чтоz
является локальным - person mjb4   schedule 25.05.2015