2010-05-03 6 views
8

저는 파이썬으로 간단한 인터프리터를 구현하고 있으며, 함수에 대한 다양한 인수를 처리하는 데 문제가 있습니다. 내 현재 방법은 다음과 같이 명령/인수 목록을 얻는 것입니다. 목록의 요소를 파이썬 함수의 인수로 전달합니다.

args = str(raw_input('>> ')).split() 
com = args.pop(0) 

그런 다음 나는 그것이 - 명령> 코드 매핑 내 사전에하고 있는지 내가 거기에 저장 한 함수를 호출하는 경우 확인, COM을 실행합니다. (나는 몇 가지를 통과 할 수있는 곳
commands[com](args[0],args[1]) 

몇 가지 트릭이 있습니까 : 명령이 여러 인수가 있다면

commands[com]() 

그러나, 나는이 원하는 것 : 인수와 명령의 경우,이 같을 것이다 또는 모두) 내 arg 목록의 요소 중 내가 전화하려고하는 함수에? 아니면 python의 cmd 클래스를 사용하지 않고 이것을 구현하는 더 좋은 방법이 있습니까?

commands[com](*args) 
:

답변

13

는 위치 인수로 목록을 풀고 시도
관련 문제