Python暴露于范围
让我们考虑一下我们有一个叫mod的模块,它有一个函数func 。 我想导入模块并运行func,将变量var暴露给它的作用域。
a.func() # and func can do stuff with var
我怎样才能做到这一点?
您可以将var
定义到的模块导入您的mod
模块,或者将var
作为参数传递给func()
。
将变量传递给函数。 在模块中工作与在单个模块中一样。
# 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(),通过它传入变量var。 如果你想让func()修改var,那么让函数返回新的值。 (如有必要,您可以轻松拥有多个返回值)。
链接地址: http://www.djcxy.com/p/53141.html