condition que je suis en train de faire valoir des arguments utilisateur sont sûrs d'un certain type, quand le script run run de la ligne cmd avec -> python Script.py argv1 argv2 argv3 etc ...python de type coulée
L'idée est Si l'utilisateur entre seulement 2 arguments de ligne cmd, le reste des variables dans arg_list sera par défaut. Je veux m'assurer que ceux qu'ils ont entrés étaient du bon type.
Ci-dessous est une maquette de la situation que j'ai. Au moment où la condition if échoue, elle n'est pas reprise par le bloc except (y a-t-il un moyen de contourner cela?) En réalité, il y a beaucoup plus de variables à essayer, sauf pour chaque clause si elle n'est pas pratique.
arg1 = 3.14
arg2 = "Default 1"
arg3 = "Default 2"
arg4 = True
arg_list = [arg1, arg2, arg3, arg4]
for i in range(1, len(sys.argv)):
try:
if i==1:
arg_list[i-1] = float(sys.argv[i])
elif i==2 or i==3:
arg_list[i-1] = str(sys.argv[i])
else i==4:
arg_list[i-1] = bool(sys.argv[i])
except TypeError as e:
# do stuff
Toute aide serait formidable, merci!