argparse store false(지정되지 않은 경우)
parser.add_argument('-auto', action='store_true')
만약에 거짓을 저장하려면 어떻게 해야 합니까?-auto
지정되지 않은 상태입니까?이런 식으로 명시되지 않은 경우 아무 것도 저장하지 않는다는 것을 희미하게 기억할 수 있습니다.
그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('-flag', action='store_true')
args = parser.parse_args()
print(args.flag)
유동 수익률
False
그럼 저장하고 있는 것 같네요False
기본적으로
Raymond Hettinger는 OP의 질문에 이미 답을 합니다.
하지만 저희 그룹은 "store_false"를 사용하여 가독성에 문제가 있었습니다.특히 새로운 멤버들이 합류할 때.사용자가 인수를 지정하면 해당 인수에 해당하는 값이 True 또는 1이 된다는 것이 가장 직관적으로 생각할 수 있기 때문입니다.
예를 들어, 코드가 -인 경우
parser.add_argument('--stop_logging', action='store_false')
stop_logging의 값이 참일 경우 코드 판독기에서 로깅 문이 꺼질 것으로 예상할 수 있습니다.그러나 다음과 같은 코드는 원하는 행동의 반대를 초래할 것입니다.
if not stop_logging:
#log
반면, 인터페이스가 다음과 같이 정의되면, "if-statement"가 작동하고 읽기에 더 직관적입니다 -
parser.add_argument('--stop_logging', action='store_true')
if not stop_logging:
#log
지정되지 않은 경우 OSX와 Linux 간에 기본값이 달라지는 것을 발견했습니다.
다음과 같은 코드 라인으로
parser.add_argument('-auto', action='store_true')
Mac 명령행에서 -auto를 생략하면 예상대로 False 값이 자동으로 할당되는 반면 Ubuntu Linux auto에서는 기본적으로 True가 할당됩니다.
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
'source' 카테고리의 다른 글
구성 관리자.앱 설정 캐싱 (0) | 2023.10.31 |
---|---|
이름을 기준으로 도커 이미지를 제거하는 방법은? (0) | 2023.10.31 |
WPML: wp_query()는 현재 게시물이 아닌 모든 언어의 게시물을 반환합니다. (0) | 2023.10.31 |
PowerShell 및 C#의 BigInt 불일치 (0) | 2023.10.31 |
다른 메서드 내부에서 메서드 호출에 대해 스프링 AOP가 작동하지 않습니다. (0) | 2023.10.26 |