我有一个非常基本的问题。
假设我调用一个函数,例如,
def foo():
x = 'hello world'
如何让函数以这样一种方式返回x,我可以将它用作另一个函数的输入或者在程序体内使用变量?
当我使用return并在另一个函数中调用该变量时,我得到一个NameError。
答案 0 :(得分:21)
def foo():
x = 'hello world'
return x # return 'hello world' would do, too
foo()
print x # NameError - x is not defined outside the function
y = foo()
print y # this works
x = foo()
print x # this also works, and it's a completely different x than that inside
# foo()
z = bar(x) # of course, now you can use x as you want
z = bar(foo()) # but you don't have to
答案 1 :(得分:3)
>>> def foo():
return 'hello world'
>>> x = foo()
>>> x
'hello world'
答案 2 :(得分:1)
您可以使用global
语句,然后在不返回值的情况下实现您想要的效果
功能。例如,您可以执行以下操作:
def foo():
global x
x = "hello world"
foo()
print x
以上代码将打印“hello world”。
但请注意,使用“全局”根本不是一个好主意,最好避免使用我的示例中显示的内容。
另请查看有关Python中global语句用法的相关讨论。