2015-01-05 2 views
0

나는 인수 라이브러리로 optparse를 가진 오래된 코드를 가지고 있습니다. 인수의 하나로서 타입을가집니다.선택 항목으로 Argparse 선택

type = "choice" 

argparse를 사용하도록 코드를 변환하려고합니다. 유형에 무엇을 넣어야합니까?

NameError: global name 'choice' is not defined 

내가 argparse를 사용하고 있다면 여기 유형의 값이어야 무엇 : 나는 형식을 추가하는 경우 = 선택이 오류가 발생합니다?

답변

2

optparse에서 choice 유형은 단지 string의 특수 형식입니다. 부터 optparse documenattion :

"choice" options are a subtype of "string" options. The choices option attribute (a sequence of strings) defines the set of allowed option arguments.

당신은 argparse의 유형으로이를 지정할 필요가 없습니다; 당신이 제공해야 할 모든 것이 선택 사항입니다. type 인수를 모두 제거하거나 명시하려는 경우 str으로 설정하십시오.

에 대해서는 choices documentation을 참조하십시오. optparse보다 훨씬 유연합니다. 문자열이 아닌 다른 유형의 선택도 가능하기 때문입니다.

+0

그러나 str을 추가하거나 입력을 제거하면 코드가 실행됩니다. python try1.py --help 그런 다음 선택 항목과 함께 해당 인수와 관련된 도움말 정보도 인쇄합니다. 내가 optparse로 작업 할 때 나는 그런 문제에 직면하지 않았다. 나는 그 논쟁과 관련된 도움말 정보 만 얻곤했다. – blackmamba

+0

@wannaC : 당신이 여기서 묻고있는 것이 확실하지 않습니다. 'argparse'는 다르게 작동합니다. 정확히 같은 출력을 생성하지 않습니다. –

+0

@wannaC : 다른 질문과 같이 들립니다. 'type' 인자에 대한 문제가 해결 되었습니까? –

관련 문제