J'aimerais avoir un argument optionnel qui par défaut sera une valeur si seul l'indicateur est présent sans valeur spécifiée, mais stocke une valeur spécifiée par l'utilisateur au lieu de la valeur par défaut si l'utilisateur spécifie une valeur. Existe-t-il déjà une action disponible pour cela?
Un exemple:
python script.py --example
# args.example would equal a default value of 1
python script.py --example 2
# args.example would equal a default value of 2
Je peux créer une action, mais je voulais voir s'il existait un moyen de le faire.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--example', nargs='?', const=1, type=int)
args = parser.parse_args()
print(args)
% test.py
Namespace(example=None)
% test.py --example
Namespace(example=1)
% test.py --example 2
Namespace(example=2)
nargs='?'
signifie 0 ou 1 argumentsconst=1
définit la valeur par défaut quand il y a 0 argumenttype=int
convertit l'argument en intSi vous voulez que test.py
définisse example
sur 1 même si aucun --example
n'est spécifié, ajoutez default=1
. C'est-à-dire avec
parser.add_argument('--example', nargs='?', const=1, type=int, default=1)
ensuite
% test.py
Namespace(example=1)