2017-02-25 3 views
1

파이썬 명령 줄 인수 --lambda을 갖고 싶습니다. 그러나 lambda가 파이썬 키워드이므로 액세스 할 수 없습니다.Python 키워드 인 Python argparse 인수

import argparse 

p = argparse.ArgumentParser() 
p.add_argument('--lambda') 
args = p.parse_args() 

print args.lambda 

내가 얻을 :

print args.lambda 
       ^
SyntaxError: invalid syntax 

내가 어떻게 할 수 있습니까?

답변

2

속성에 다른 이름을 추가 할 수 있습니다. 예 : dest

import argparse 

p = argparse.ArgumentParser() 
p.add_argument('--lambda', dest='llambda') 
args = p.parse_args() 

print args.llambda 
1

argparse 네임 스페이스에 값을 설정하고 hasattrgetattr을 이용한다. 이렇게하면 args.dest 구문에서 유효하지 않은 플래그/목적지를 사용할 수 있습니다. 여기서 문제는 제한된 핵심 단어입니다. 특수 문자가 포함 된 문자열 일 수도 있습니다. 따라서 getattr(args, 'lambda')이 작동해야합니다.

vars(args) 사전을 생성하여 vars(args)['lambda']을 사용할 수 있습니다.

하지만 dest를 변경하는 것이 더 깨끗한 해결책입니다. 이것이 그 매개 변수가 허용되는 이유의 일부입니다.

(위치 인수에 대해서는 유효한 대상을 바로 선택하십시오.)

관련 문제