아니, 잘되지 추한 해킹없이.
코드 스 니펫 @Vladimir이 게시했습니다. 사용자가 찾고있는 코드가 아닌 것 같습니다. 이 작업을 수행하는 실제 코드는 다음과 같습니다
def _get_option_tuples(self, option_string):
...
if option_string.startswith(option_prefix):
...
이 검사가
startswith
하지
==
발생한다.
그리고 언제든지 argparse.ArgumentParser
을 확장하여 자신의 _get_option_tuples(self, option_string)
을 제공하여이 동작을 변경할 수 있습니다. I는 option_string == option_prefix
에 option_string.startswith(option_prefix)
두 발생을 1,8- 의해 않았다주의
있어서 _get_option_tuples
전형적 파이썬 전용 방법을 의미 _
, 접두어의
>>> parser = my_argparse.MyArgparse
>>> parser = my_argparse.MyArgparse()
>>> parser.add_argument('--send', action='store_true')
_StoreTrueAction(option_strings=['--send'], dest='send', nargs=0, const=True, default=False, type=None, choices=None, help=None, metavar=None)
>>> parser.parse_args(['--se'])
usage: [-h] [--send]
: error: unrecognized arguments: --se
단어. 그리고 사적인 것을 무시하는 것은 좋은 생각이 아닙니다.
원래 질문은 3 년이 넘었지만 오늘은 정답입니다. – jdferreira
나는이 질문에 답하기 때문에 정답으로 선택합니다. – jens