Python公开范围

时间:2011-08-09 16:36:46

标签: python

我们假设我们有一个名为 mod 的模块,它有一个函数 func 。我想导入模块并运行func,将变量 var 暴露给它的范围。

a.func() # and func can do stuff with var

我该怎么做?

3 个答案:

答案 0 :(得分:2)

您可以将定义var的模块导入mod模块,或将var作为参数传递给func()

答案 1 :(得分:0)

最有可能的是,您应该在func()中添加一个参数,通过该参数传递变量var。如果你想让func()修改var,那么让函数返回新值。 (如有必要,您可以轻松拥有multiple return values)。

答案 2 :(得分:0)

将变量传递给函数。模块在单个模块中的工作方式相同。

# 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

某些对象(例如列表)是 mutable ,可以通过该函数进行更改。你不必归还那些。有时返回它们很方便,但我会在没有它的情况下显示它。

# module a
def func(v):
    v.append(42)

# module b
import a
var=[]        # empty list
a.func(var)   # var is now [42]