2016-07-05 61 views
-2

下面确实在函数之前声明了变量,但是当在函数中打印变量时,会输出所需的值,但是在函数后面打印时,变量的值与声明时保持不变。如何从一个函数返回值到一个在它之前声明的变量(没有全局变量)?

foo = 0 
def method(bar, baz): 
    foo = bar + baz 
    print(foo) 
    return foo 
method(1, 3) 
print(foo) 

随着全局变量的使用所需的值被输出,但我更喜欢一个不包含全局变量的答案。

+0

您从不在您提供的代码段执行您的功能。你可以给一个[最小的例子](http://stackoverflow.com/help/mcve)? – syntonym

+3

'foo =方法(1,3)'? – jonrsharpe

+0

我的歉意,一个简单的愚蠢的错误在函数的名称。 –

回答

0

我不完全确定这是你想要的,因为严格来说,如果没有全局变量,你就不能拥有一个全局变量。你可以做的是有一个可变的全局变量,你可以修改而不需要明确的global

foo = [] # list is mutable, just like dict, set, ... 
def method(bar, baz): 
    foo[:] = [bar + baz] # replace foo's *elements* via [:] 
    print(foo) 
    return foo 
method(1, 3) 
print(foo) 
相关问题