argparse - выяснить, был ли указан аргумент или использовался по умолчанию - PullRequest
0 голосов
/ 21 апреля 2020

Как узнать, был ли аргумент, возвращенный argparse, задан в командной строке или использовалось значение по умолчанию?

В приведенном ниже коде я хочу узнать, что args используется по умолчанию, но args2 нет, хотя предоставленное значение совпадает со значением по умолчанию.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--khram', '-k', nargs='?', default='wawawiwa')

args = parser.parse_args([])
args2 = parser.parse_args(['-kwawawiwa'])

Мы видим, что args и args2 неразличимы:

>>> args == args2
True
>>> args.khram == args2.khram
True
>>> args._get_args() == args2._get_args()
True
>>> args._get_kwargs() == args2._get_kwargs()
True
...