Я кратко просмотрел пару десятков qus на UnboundLocalError
для вложенных функций в python, и я думал, что понял, пока не попробовал его с пользовательским экземпляром класса
def fn1():
a = 1
def fn1a():
print(a)
a += 1
print(a)
fn1a()
class B:
v = 1
def fn2():
b = B()
def fn2a():
print(b.v)
b.v += 1
print(b.v)
fn2a()
fn2() # prints 1 then 2
fn1() # raises UnboundLocalError
Почему неошибка возникает в fn2
?