【发布时间】:2017-02-25 09:12:50
【问题描述】:
我有 4 个不同的课程:
meta
-> Limb
-> Arm
-> Leg
meta 是每个类的基础。肢体继承自元。 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) #
但是,当我尝试构建 Leg 模块时...
import Limb.Arm
reload(Limb.Arm)
import Limb.Leg
reload(Limb.Leg)
def build():
leg= Limb.Leg.Leg()
build()
一切正常:
==> SUCCESS: L_Leg created!
如果我像这样注释掉加载 Leg 模块,代码也可以在 arm 上运行。
import Limb.Arm
reload(Limb.Arm)
#import Limb.Leg
#reload(Limb.Leg)
有人能解释为什么会这样吗?在导入 Arm 模块后导入 Leg 模块时是否会覆盖某些内容,因为它们都继承自 Limb 模块?我在这里有点不知所措。
【问题讨论】:
标签: python inheritance maya multi-level