2017-08-19 288 views
0

我有两个模块Book类和作者类。笔者类模块导入文件导入书类模块如下错误蟒蛇

from BookClass import Book 
from PersonClass import Person 

class Author(Person): 

和书类模块也进口笔者类模块如下

from AuthorClass import Author 

class Book: 

当我运行这两个模块中的任何一个时,它给我一个导入错误。我不知道如何解决这个错误。 在此先感谢。

+0

您正在尝试执行循环导入,这是导致错误的原因。 –

+0

这可以帮助'[https://stackoverflow.com/questions/45634342/circular-imports-and-class-fields-in-python3' – Kallz

+1

[Python中的循环(或循环)导入]的重复(https:// stackoverflow.com/questions/744373/circular-or-cyclic-imports-in-python) –

回答

1

,因为你的书类模块说

from AuthorClass import Author 

记住import是一个可执行语句您收到此错误。当解释执行该语句,它做的第一件事就是导入这个代码:

from BookClass import Book 

但在那一刻类Book尚未定义,因为Book的定义来自from AuthorClass import Author后。

你有两个具有相互引用的类,我认为你完全可以控制模块结构。如果我处于这个位置,我会通过将两个类定义放在同一个模块中来解决问题。

+0

将它们放在同一个模块中工作得很好。但我想将它们作为一种组织在不同的模块中分开。 – Marim

+0

我意识到|原则上这是一个好方法。但是在动态语言中,如果你有两个相互引用的类,它就不能很好地工作。 – BoarGules