从已导入当前文件的文件调用函数

时间:2019-03-19 09:10:22

标签: python

如果我的文件frame.py和bindings.py都分别带有Frame和Bindings类,我可以使用from bindings import Bindings将bindings.py文件导入frame.py,但是我该怎么做将frame.py文件导入到我的bindings.py文件中。如果我使用import framefrom frame import Frame,则会收到错误ImportError: cannot import name 'Bindings' from 'bindings'。有没有解决我的代码的办法吗?

2 个答案:

答案 0 :(得分:0)

请尝试使用from bindings import Bindings。而不是使用import bindings

答案 1 :(得分:0)

这就是我们所说的循环导入。让我们来看一个例子。我们有两个文件:

frame.py

from bindings import Bindings

class Frame:
    pass

bindings.py

class Bindings:
    pass

print("class Binding here")

from Frame import Frame

首先要知道的是,每当我们导入文件时,导入的文件中的代码也会同时执行。因此,在我的示例中,当您运行frame.py文件时,它将首先执行bindings.py文件,在该文件中还将找到所需的内容(即类Bindings)。在执行bindings.py文件的同时,from Frame import Frame行将执行frame.py文件,得到它想要的内容(即类Frame)。