最近、継承に関する質問を投稿しましたが、正しい答えが得られなかったので、もう一度試しています。
ここにこのコードがあります:
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()