Я пытаюсь использовать переменную из класса - CustomNodeTranslator
и иметь эту переменную для использования в другом классе - fileImporter
Используя переменную из класса в другой класс
Однако я побудила с ошибкой # AttributeError: 'CustomNodeTranslator' object has no attribute 'camName' #
я использовал аналогичный метод на другом 2-м классе, и он работает, за исключением двух классов.
Возможно ли, что CustomNodeTranslator - это особый случай? Видя, что он используется для плагина?
Пожалуйста, дайте мне советы.
Спасибо.
class CustomNodeTranslator(OpenMayaMPx.MPxFileTranslator):
def __init__(self):
OpenMayaMPx.MPxFileTranslator.__init__(self)
...
...
def reader(self, fileObject, optionString, accessMode):
try:
fullPath = fileObject.fullName()
self.fileHandle = open(fullPath,"r")
camHandle = self.fileHandle
camBaseName = os.path.basename(camHandle.name)
camName = os.path.splitext(camBaseName)[0]
self.camName = camName
class fileImporter():
def __init__(self, order):
test = CustomNodeTranslator()
cameraName, cameraShape = cmds.camera(n=str(test.camName))
camSel.extend((cameraName, cameraShape))
cmds.scale(0.5, 0.5, 0.5)
camBaseName = os.path.basename(camHandle.name)
camName = os.path.splitext(camBaseName)[0]
self.camName = camName
'test.camName' будет назначаться только после вызова' test.reader (...) ', поскольку он не назначен в' __init__'. – jonrsharpe
@jonrsharpe Итак, я понимаю, невозможно вызвать какие-либо другие функции, если я не назначил его в '__init__'? – dissidia
Непонятно, что вы просите. Любой случай, требующий двух атрибутов ('fileHandle' и' camName'), назначенных в первый раз в 'reader', завершится неудачно, если этот метод еще не был вызван. – jonrsharpe