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

上一篇: Python expose to scope

下一篇: Use return value of a function