Я просто пытался посмотреть, как работают области переменных, и столкнулся со следующей ситуацией (все запускалось с терминала):
Код: Выделить всё
x = 1
def inc():
x += 5
inc()
Traceback (most recent call last):
File "", line 1, in
File "", line 2, in inc
UnboundLocalError: local variable 'x' referenced before assignment
Я подумал, что, возможно, у меня нет доступа к x в моем методе, поэтому я попробовал:
Так это работает. Теперь я знаю, что могу просто сделать:
И это сработает, но у меня вопрос: почему первый пример не работает? Я имею в виду, что, поскольку print(x) работал, что x виден внутри функции, так почему бы x += 5 потерпеть неудачу?
Подробнее здесь:
https://stackoverflow.com/questions/894 ... e-function