从模块调用undefined方法

时间:2013-02-17 15:08:47

标签: python

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

#module
def foo():
    print bar()

#main
from foo import foo

def bar():
    return "Foo bar"

def main():
    foo.foo()

2 个答案:

答案 0 :(得分:2)

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

你必须传递一个函数引用:

def foo(func):
    print func()

然后在主要:

def main():
    foo.foo(bar)

答案 1 :(得分:1)

您可以将功能从一个模块添加到另一个模块,但将其作为回调传递可能更整洁。这取决于具体情况。

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

#main
from foo import foo

def bar():
    return "Foo bar"

def main():
    foo(bar)