我最近发布了一个关于继承的问题,但它从来没有得到正确的答案,所以我再试一次。
我在这里有这段代码:
import maya.cmds as cmds
import jtAutoRigUI
class RigLegs(jtAutoRigUI.RigUI):
def __init__(self, *args):
jtAutoRigUI.RigUI.__init__(self)
self.rigLegs()
def rigLegs(self):
self.items["side"] = "left"
self.lIK = cmds.duplicate(self.lJoints["hip"], n = self.getName("hip_IK"))
self.lIK = cmds.listRelatives(self.lIK, ad = True, type = "joint")
for i in self.lIK:
newName = i.replace("_JNT", "_IK")
cmds.rename(i, newName)
这很有效,self.items["side"] = "left"
因为它是在 init 方法中声明的。但是在 init 方法之外声明的任何东西都不会被继承接收。因此,当它到达 self.lJoints["hip"] 时,它会出错。
class RigUI(object):
def __init__(self):
self.widgets = {}
self.items = {}
self.items["side"] = "center"
self.interface()