2017-08-19 306 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