以下是我的问题的简化代码。我在'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传递给对象,然后它才能调用另一个未传递的函数?
发布于 2018-07-26 04:27:59
好的,让我们用一个简单的例子来类比你的情况。我们有两个文件:
foo.py
from bar import bar
class Foo:
def foo():
bar()
bar.py
from foo import Foo
def bar():
print('bar')
foo = Foo()
实际上,当我们运行python foo.py
时,我们得到的是ImportError: cannot import name 'bar'
。这是由循环依赖引起的(有关导入go here的更多信息)。避免这种情况的一种非常简单的方法是将from foo import Foo
移到文件的底部:
bar.py 2
def bar():
print('bar')
from foo import Foo
foo = Foo()
现在它应该可以工作了。
https://stackoverflow.com/questions/51527010
复制相似问题