Как узнать, был ли аргумент, возвращенный 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