-1

我遇到了变量和函数的问题。这是一个简单的代码:

r = 0
list = ['apple','lime','orange']
def list_list(x):
    for i in x:
        r +=1
        print r
list_list(list)

错误:

UnboundLocalError: local variable 'r' referenced before assignment

我知道这一定很简单。我开始使用函数而不是直接代码来编写脚本。

4

3 回答 3

3

r如果你想在你的函数之外定义它,你应该重写你的函数作为参数:

def my_func(some_list, r=0):
    # do some stuff

基本上,您的范围有问题。如果您需要 r 在函数之外,只需在元组中返回它的值:

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)
于 2013-03-12T23:26:47.380 回答
2

函数内r和函数外不一样,所以还没有设置。

于 2013-03-12T23:26:55.320 回答
1

你应该把r = 0函数放在里面。但是,如果您想要列表的长度,只需使用len(list)

还要尽量避免将变量命名为与 list 等内置名称相同的名称。

于 2013-03-12T23:26:28.570 回答