这是我的问题的简化代码。我在文件'class1.py'中有一个类,有时该类中的另一个函数调用了eventHandler。
class FOO:
def eventHandler(self, message):
processMessage(message)
我想让类调用文件'main.py'中的processMessage函数。
from class1 import FOO
def processMessage(message):
processMore(message)
def processMore(message):
print(message)
myClass = FOO()
这怎么办?我是否必须将processMessage传递给对象,然后它可以调用另一个未传递的函数?
答案 0 :(得分:1)
好的,让我们使用一个与您的情况类似的简单示例。我们有两个文件:
from bar import bar
class Foo:
def foo():
bar()
from foo import Foo
def bar():
print('bar')
foo = Foo()
实际上,当我们运行python foo.py
时,我们得到ImportError: cannot import name 'bar'
。
这是由循环依赖引起的(有关导入的更多信息,请转到here)。避免它的一种非常简单的方法是
将from foo import Foo
移到文件底部:
def bar():
print('bar')
from foo import Foo
foo = Foo()
现在应该可以了。