최근 상속에 관한 질문을 올렸지 만 정답을 얻지 못해 다시 시도하고 있습니다.Python 상속 init에서만 작동
여기이 코드가 있습니다
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)
을 그리고는 init 메소드에서 선언 있기 때문에 그 self.items["side"] = "left"
작동합니다. 그러나 init 메소드 밖에서 선언 된 것은 상속에 의해 선택되지 않습니다. 그래서 자기가 될 때. 조인트는 실수를 저지른다.
class RigUI(object):
def __init__(self):
self.widgets = {}
self.items = {}
self.items["side"] = "center"
self.interface()
'자가.ljoints' * and *'self.loint [ "hip"]'는 self.rigLegs()를 호출하기 전에 초기화 되었습니까? 파이썬의 값은 기본값으로 존재하지 않습니다. 그것들은 초기화되어야합니다. 그렇지 않으면'NameError' /'AttributeError' /'KeyError'를받을 수 있습니다. (당신이 여기에있는 것을 알면 도움이 될 것입니다.) – cdhowie
?? 나는 네가하는 말을 정말로 모른다. 물론 self.loints [ "hip"]이 있었고, 그렇지 않으면 나는 그것을 사용하려고하지 않을 것입니다. – Vii
"init 메소드 외부에서 선언"이란 무엇을 의미합니까? 일반적으로 변수는 Python에서 선언되지 않습니다. 방금 변수를 설정하면 변수가 존재합니다. – abarnert