Python UnboundLocalError:局部变量';r';分配前参考

Python UnboundLocalError:局部变量';r';分配前参考,python,function,Python,Function,我对变量和函数有问题。下面是一个简单的代码: r = 0 list = ['apple','lime','orange'] def list_list(x): for i in x: r +=1 print r list_list(list) 错误: 我知道这一定很简单。我开始使用函数而不是直接的代码来编写脚本。您应该将r=0放在函数中。但是如果你想知道列表的长度,只需使用len(list) 另外,尽量避免将变量命名为与列表等内置名称相同的名称。如果要在

我对变量和函数有问题。下面是一个简单的代码:

r = 0
list = ['apple','lime','orange']
def list_list(x):
    for i in x:
        r +=1
        print r
list_list(list)
错误:
我知道这一定很简单。我开始使用函数而不是直接的代码来编写脚本。

您应该将
r=0
放在函数中。但是如果你想知道列表的长度,只需使用
len(list)


另外,尽量避免将变量命名为与列表等内置名称相同的名称。

如果要在函数之外定义它,则应重写函数以将
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)

函数内的
r
与函数外的不一样,因此尚未设置。

此函数应该做什么?你的错误是r是全局的(不是局部的),但我不能告诉你如何在不知道程序的预期行为的情况下修复它。关于这一点,大概有100个问题。你试过谷歌吗?
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)