在Python函数内添加变量

时间:2013-10-31 01:34:08

标签: python function variables addition

我有一个变量a,我希望用b添加一个,就像这样:

a = a + b

现在,我的程序设置如下:

a = 2
b = 3

def add() :
    a = a + b
    print(str(a))

add()

每次我跑这个,我都会

Traceback (most recent call last):
File "<stdin>", line 8, in <module>
File "<stdin>", line 5, in add
UnboundLocalError: local variable 'a' referenced before assignment

而不是

5

请解释我正在犯的明显错误。

2 个答案:

答案 0 :(得分:1)

这是因为有一个名为scope的东西。您可以阅读它,但实际上它意味着在函数内部,您可能无法访问外部定义的内容。

要使函数知道这些变量,您需要将它们传入。试试这个:

a = 2
b = 3

def add(x, y) :
    x = x + y
    print(str(x))

add(a, b)

值得注意的是,这些值正在传递给函数,但实际上并没有自行修改。我不会进入complexities surrounding the way variables are passed to functions,但只需说明在此处调用add(a, b)之后,a和b的值将分别为2和3。

答案 1 :(得分:0)

我想你只是在学习如何做这些事情,你真的不想让一切都变得全球化,否则你将陷入一团糟。

此处,ab被传递到函数中。在函数内部,ab是局部变量,并且与您在函数外声明的那些不同

a = 2
b = 3

def add(a, b) :
    a = a + b
    print(str(a))
    return a

a = add(a, b)

return a是函数返回本地a所以你可以用它做点什么