我有一个模块,我想调用该模块中未定义的方法。是否可以?
#module
def foo():
print bar()
#main
from foo import foo
def bar():
return "Foo bar"
def main():
foo.foo()
我有一个模块,我想调用该模块中未定义的方法。是否可以?
#module
def foo():
print bar()
#main
from foo import foo
def bar():
return "Foo bar"
def main():
foo.foo()
你不能。Python 在定义函数的同一模块中查找未定义的名称。
您必须改为传递函数引用:
def foo(func):
print func()
然后主要:
def main():
foo.foo(bar)
您可以将函数从一个模块添加到另一个模块,但将其作为回调传递可能更简洁。这取决于实际情况。
#module
def foo(bar):
print bar()
#main
from foo import foo
def bar():
return "Foo bar"
def main():
foo(bar)