지정되지 않은 경우 argparse store false
parser.add_argument('-auto', action='store_true')
-auto
지정되지 않은 경우 거짓을 어떻게 저장할 수 있습니까? 이 방법으로 지정하지 않으면 None을 저장한다는 것을 희미하게 기억할 수 있습니다.
이 store_true
옵션은 기본값 False를 자동으로 만듭니다 .
마찬가지로 명령 줄 인수가없는 경우 store_false
기본값은 True 입니다.
이 동작의 소스는 간결하고 명확합니다. http://hg.python.org/cpython/file/2.7/Lib/argparse.py#l861
argparse 문서는 주제에 대해 명확하지 않으므로 지금 업데이트하겠습니다. http://hg.python.org/cpython/rev/49677cc6d83a
와
import argparse
parser=argparse.ArgumentParser()
parser.add_argument('-auto', action='store_true', )
args=parser.parse_args()
print(args)
달리는
% test.py
수확량
Namespace(auto=False)
따라서 False
기본적 으로 저장 되는 것으로 보입니다 .
Raymond Hettinger는 이미 OP의 질문에 대답합니다.
그러나 우리 그룹은 "store_false"를 사용하여 가독성 문제를 경험했습니다. 특히 새로운 회원이 우리 그룹에 가입 할 때. 사용자가 인수를 지정하면 해당 인수에 해당하는 값이 True 또는 1이된다는 것이 가장 직관적 인 생각이기 때문입니다.
예를 들어, 코드가-
parser.add_argument('--stop_logging', action='store_false')
코드 판독기는 stop_logging의 값이 true 일 때 로깅 문이 꺼져있을 것으로 예상 할 수 있습니다. 그러나 다음과 같은 코드 는 원하는 동작 의 반대로 이어질 것 입니다.
if not stop_logging:
#log
반면에 인터페이스가 다음과 같이 정의되면 "if-statement"가 작동하고 더 직관적으로 읽을 수 있습니다.
parser.add_argument('--stop_logging', action='store_true')
if not stop_logging:
#log
store_false는 실제로 기본적으로 기본값 0
으로 설정됩니다 (테스트하여 확인할 수 있음). 기본값을 변경하려면 default=True
선언에 추가 하십시오.
따라서이 경우 : parser.add_argument('-auto', action='store_true', default=True)
참고 URL : https://stackoverflow.com/questions/8203622/argparse-store-false-if-unspecified
'Programing' 카테고리의 다른 글
Server 2012 IIS 8 MVC 앱에 기본 IIS 홈 페이지 또는 403/404 오류가 표시됨 (0) | 2020.09.22 |
---|---|
Android 캔버스에 채워진 삼각형을 그리는 방법은 무엇입니까? (0) | 2020.09.21 |
SQLite 명령 줄 셸 내에서 데이터베이스 파일 열기 (0) | 2020.09.21 |
npm uninstall을 사용할 때 package.json에서 종속성 자동 제거 (0) | 2020.09.21 |
Keras 모델을 GPU에서 실행할 수 있습니까? (0) | 2020.09.21 |