[python] optparse 대신 argparse를 사용하는 이유는 무엇입니까?


1 Answers

optparse 대신 왜 사용해야합니까? 내가 알아야 할 새로운 기능이 있습니까?

@ 니콜라스의 대답은이 글을 잘 다루고 있다고 생각합니다.하지만 여러분이 시작하는 더 많은 "메타"질문은 아닙니다.

왜 다른 커맨드 라인 파싱 모듈이 생성 되었습니까?

어떤 유용한 모듈이 표준 라이브러리에 추가 될 때 딜레마 넘버 1입니다 : 동일한 기능을 제공하는 실질적으로 더 좋지만, 하위 호환되지 않는 방법이 등장 할 때 당신은 무엇을합니까?

(일반적으로 우리가 복잡한 패키지에 대해 이야기 할 때 : asyncore 대 twisted, tkinter 대 wx 또는 Qt, ...) 또는 똑같은 일을하는 여러 양립 불가능한 방법으로 끝납니다 (XML 파서 인 IMHO는 커맨드 라인 파서보다 훨씬 더 좋은 예다. 그러나 email 패키지와 비슷한 문제를 다루는 무수한 예전 방식은 너무 멀지 않다.

"폐기 된"오래된 방법에 대해 문서에서 위협적인 불평을 할 수도 있지만 큰 호환성이있는 중요한 응용 프로그램이 새로운 Python 릴리스로 이동하는 것을 막지 않으면 제거 할 수 없습니다.

(딜레마 2 번은 여러분의 질문과 직접적으로 관련이 없지만 "표준 라이브러리는 훌륭한 패키지가 죽는 곳"이라는 말에 요약되어 있습니다 ... 매년 1 년 반 정도되는 배포본은 그리 많지는 않지만, 매우 안정적이며 더 이상 릴리즈가 필요하지는 않지만 표준 라이브러리에서 "얼어 붙음"으로 인해 실제로 고통을받을 수 있습니다.하지만 실제로는 다른 문제입니다.)

Question

Python 2.7 문서에 또 다른 명령 행 구문 분석 모듈이 포함되어있는 것으로 나타났습니다. getoptoptparse 외에 argparse 있습니다.

왜 다른 커맨드 라인 파싱 모듈이 생성 되었습니까? optparse 대신 왜 사용해야합니까? 내가 알아야 할 새로운 기능이 있습니까?




블록에 새로운 아이들도 있습니다!

  • 이미 언급 된 depparated optparse 외에. [사용하지 마세요]
  • argparse 도 언급되었는데, 외부 libs를 포함시키지 않는 사람들을위한 솔루션이다.
  • docopt 는 당신의 입력을위한 파서 (parser)로서 문서화 문자열을 사용하는, 가치있는 외부 lib이다.
  • click 은 또한 외부 lib이고 인자를 정의하기 위해 데코레이터를 사용합니다. (나의 자료 추천 : Why Click )

깊이있는 비교가 필요하면이 부분을 읽어주십시오. 그러면 docopt 를 사용하거나 끝낼 수 있습니다. Kyle Purdon에게 감사드립니다!



Related