让我们考虑一下我们有一个叫做mod的模块,它具有函数func。我想导入模块并运行func,将变量var暴露给它的范围。Python暴露在范围内
a.func() # and func can do stuff with var
我该怎么做?
让我们考虑一下我们有一个叫做mod的模块,它具有函数func。我想导入模块并运行func,将变量var暴露给它的范围。Python暴露在范围内
a.func() # and func can do stuff with var
我该怎么做?
最有可能的是,你应该添加一个参数给func(),通过它传入变量var。如果你想让func()修改var,那么让函数返回新的值。 (如有必要,您可以轻松拥有multiple return values)。
将变量传递给函数。在模块中工作与在单个模块中一样。
# module a
def func(v):
print v
# module b
import a
var=42
a.func(var)
如果您需要修改该值,请将其返回。然后调用者可以将它放在任何他们想要的地方,包括回到同一个变量中。
# module a
def func(v):
return v + 1
# module b
import a
var=42
var = a.func(var) # var is now 43
一些对象,如列表,是可变,并且可以由函数来改变。你不必返回这些。有时返回它们很方便,但我会在没有的情况下显示它。
# module a
def func(v):
v.append(42)
# module b
import a
var=[] # empty list
a.func(var) # var is now [42]
我实际上并不想将它传递给函数,func实际上是用于脚本的。我只是想将一些变量暴露为全局变量。 – nikitautiu