source

argparse store false(지정되지 않은 경우)

factcode 2023. 10. 31. 22:55
반응형

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

반응형