Python对象调用另一个文件功能

时间:2018-07-25 20:15:48

标签: python

这是我的问题的简化代码。我在文件'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传递给对象,然后它可以调用另一个未传递的函数?

1 个答案:

答案 0 :(得分:1)

好的,让我们使用一个与您的情况类似的简单示例。我们有两个文件:

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'。 这是由循环依赖引起的(有关导入的更多信息,请转到here)。避免它的一种非常简单的方法是 将from foo import Foo移到文件底部:

bar.py 2

def bar():
    print('bar')


from foo import Foo
foo = Foo()

现在应该可以了。