我有4個不同的類:具有多級繼承的TypeError?
meta
-> Limb
-> Arm
-> Leg
元是用於每類的基。肢體繼承元。 Arm和Leg從Limb繼承
Arm.py和Leg.py文件具有完全相同的代碼,只是用於命名約定的一些不同的字符串。
當我做到以下幾點:
import Limb.Arm
reload(Limb.Arm)
import Limb.Leg
reload(Limb.Leg)
def build():
arm = Limb.Arm.Arm()
build()
我得到的錯誤:
# TypeError: unbound method __init__() must be called with Limb instance as first argument (got Arm instance instead) #
但是,當我嘗試建立的腿模塊...
import Limb.Arm
reload(Limb.Arm)
import Limb.Leg
reload(Limb.Leg)
def build():
leg= Limb.Leg.Leg()
build()
一切工作得很好:
==> SUCCESS: L_Leg created!
如果我註釋掉這樣加載Leg模塊,代碼也可以很好的運行。
import Limb.Arm
reload(Limb.Arm)
#import Limb.Leg
#reload(Limb.Leg)
有人可以解釋爲什麼會發生這種情況嗎?導入Arm模塊後導入Leg模塊時是否會覆蓋某些內容,因爲它們都是從Limb模塊繼承的?我在這裏有點損失。
不幸的是,這導致了相同的錯誤。我通過製作兩種不同的功能來構建手臂和腿部,並將這些功能中的Arm和Leg模塊導入,而不是在文件頂部。 –