2014-09-23 1 views
0

편집 (솔루션) : 배열을 문자열로 변환하고 다른 끝에서 구문 분석하고 다시 작성하여이를 수행 할 수있었습니다. 누구든지 더 좋은 방법이 있다면 나는 그것을 고맙게 생각할 것입니다.Maya의 MArgList에서 목록을 가져 오려면 어떻게합니까? (파이썬)

원본 : 나는 플러그인을 만들 MPxCommand를 확장하는 클래스를 생성하고, 인수 변수에서에서 목록의 몇 가지를 끌어 오기 doIt() 함수에서 MArgList을 구문 분석하는 방법을 알아 내기 위해 노력 해왔다

. 내가 명령을 호출 할 때 여러 번 깃발을 채울 수 없을 것입니다 (나는) 생각할 수 없을 것입니다 문자열의 목록과 일관성없는 길이가됩니다 목록 ints를 잡으려고 노력하고 있습니다.

MArgParser으로 개별 변수를 가져 왔지만 전체 목록을 가져올 방법을 찾지 못했습니다.

# Error: TypeError: file Command.py line 163: in method 'MArgList_asIntArray', argument 2 of type 'unsigned int &' # 

편집 :

class myCommand(omMPx.MPxCommand): 
    def __init__(self): 
     omMPx.MPxCommand.__init__(self) 

    def newSyntax(self): 
     syntax = om.MSyntax() 

     syntax.addFlag("-s", "-string", om.MSyntax.kString) 
     return syntax 

    def doIt(self, args): 

     stringFlag = "-s" 
     parser = om.MArgParser(self.newSyntax(),args) 

     if parser.isFlagSet(stringFlag): 
      self.myStr = parser.flagArgumentString(stringFlag, 0) 
      print self.myStr 

이 코드는 둘 것이다 "

MArgList

내가 기능 asStringArray(index)asIntArray(index)로 원하지만 내가 그들을 사용해보십시오 사용할 때이 오류가 무엇을 가지고 나타납니다 hello " cmds.myCommand(s = "hello")을 실행하면 args에서 self.myStr으로 바뀌지 만 cmds.myCommand(s = ["hello", "world"])을 실행할 수 있고에서 배열을 가져올 수 있어야합니다.변수를 입력하고 self.myStr에 입력하십시오.

나는 무엇을 하려는지 분명히합니다.

'MArgList_asIntArray', argument 2 of type 'unsigned int &' 

int &이, 즉 당신이 함수에 제공하는 int는 함수가 변경됩니다, int 형에 대한 참조와 변수의 의지 :

+0

코드를 공유 할 수 있습니까? 당신의 문제를 따르는 것은 쉽지 않습니다. – user1767754

답변

0

나는 당신의 문제는 그 함수의 선언에 생각 변경 사항을 반영하십시오.

어쩌면 이미 보았을 것입니다. 상수를 전달할 수 없습니다.

저는 파이썬에 전혀 관여하지 않습니다. 그래서 간단히 int를 선언하고, 초기화하고, 인수 2로 함수에 전달하는 것으로 충분할지 모르겠습니다.

관련 문제