UnboundLocalError: local variable 'r' referenced before assignment
本问题已经有最佳答案,请猛点这里访问。
我有一个关于变量和函数的问题。下面是一个简单的代码:
1 2 3 4 5 6 7 | r = 0 list = ['apple','lime','orange'] def list_list(x): for i in x: r +=1 print r list_list(list) |
错误:
1 | UnboundLocalError: local variable 'r' referenced before assignment |
我知道这一定很简单。我开始用函数代替直接代码编写脚本。
函数内的
如果要在函数之外定义它,则应重写函数,以将
1 2 | def my_func(some_list, r=0): # do some stuff |
基本上,您的范围有问题。如果在函数外部需要r,只需返回元组中的值:
1 2 3 4 5 6 7 | def my_func(some_list, r=0): # do some stuff return new_list, r my_list = [1,2,3,4,5] different_list, my_outside_r = my_func(some_list, 0) |
你应该把
还应尽量避免将变量命名为与列表等内置名称相同的名称。