2

我有一个模块,我想调用该模块中未定义的方法。是否可以?

#module
def foo():
    print bar()

#main
from foo import foo

def bar():
    return "Foo bar"

def main():
    foo.foo()
4

2 回答 2

2

你不能。Python 在定义函数的同一模块中查找未定义的名称。

您必须改为传递函数引用:

def foo(func):
    print func()

然后主要:

def main():
    foo.foo(bar)
于 2013-02-17T15:12:59.910 回答
1

您可以将函数从一个模块添加到另一个模块,但将其作为回调传递可能更简洁。这取决于实际情况。

#module
def foo(bar):
    print bar()

#main
from foo import foo

def bar():
    return "Foo bar"

def main():
    foo(bar)
于 2013-02-17T15:13:28.577 回答