I am curious why the following code generates error:
def test_method():
main_var = 0
main_list = list()
def sub_method():
print(main_list)
main_list.append(0)
print(main_list)
print(main_var)
main_var +=1
print(main_var)
sub_method()
Error
UnboundLocalError: local variable 'main_var' referenced before assignment
In particular, it does not complain about list, but does complain about variable.