我试图从类中获取值并将该特定值用于另一个类。但是我一直收到此错误 - AttributeError: 'CustomNodeTranslator' object has no attribute 'start'
基本上我正在尝试获取/转移要用于self.start
类的self.end
和ChanFileExporter
的值
我不确定为什么它不起作用但是当我在代码的另一部分中应用这个类似的方法时,它工作正常。
非常感谢任何建议!
class CustomNodeTranslator(OpenMayaMPx.MPxFileTranslator):
def __init__(self):
OpenMayaMPx.MPxFileTranslator.__init__(self)
def haveWriteMethod(self):
return True
def haveReadMethod(self):
return True
def filter(self):
return "*.chan"
def defaultExtension(self):
return "chan"
def writer( self, fileObject, optionString, accessMode ):
self.start = []
self.end = []
for opt in filter(None, optionString.split(';')):
optSplit = opt.split('=')
if optSplit[1] == '0':
startAnimation = cmds.findKeyframe(which='first')
endAnimation = cmds.findKeyframe(which='last')
self.start = startAnimation
self.end = endAnimation
class ChanFileExporter():
def __init__(self, transform, startAnimation, endAnimation, cameraObj):
self.fileExport = []
testClass = CustomNodeTranslator()
mayaGlobal = OpenMaya.MGlobal()
mayaGlobal.viewFrame(OpenMaya.MTime(1))
startAnimation = testClass.start
endAnimation = testClass.end
for i in range(int(startAnimation), int(endAnimation + 1)):
...
...
答案 0 :(得分:1)
第一次在start
end
方法中看到CustomNodeTranslator
或writer()
。
self.start = []
self.end = []
在__init__()
之外添加属性是不好的做法。它之所以失败的原因是因为你指的是尚不存在的属性,因为它们仅在 之后被调用writer()
。