Wie füge ich ein optionales Argument, das einen Standardwert hat und mit einem anderen Wert aufgerufen werden kann oder der ohne Wert aufgerufen werden kann (und den Standard hat). Also habe ich dieses ArgumentPython argparse optionale Argumente ohne Argument (nicht speichern true)
parser.add_argument("-a", "--automatic", type=int, default=8)
und ich möchte anrufen können. wenn ich einen automatischen Modus mit 8 als Argument wollen, aber ich möchte auch zum Beispiel My_script.py -a 10
tun, wenn ich einen automatischen Modus mit 10 (oder einer anderen Zahl) als Argument wollen. Das Problem ist, dass ich ein Argument erwartet, wenn ich mit laufen. Wenn ich die 8 nicht angeben möchte, darf ich auch nicht das -a angeben und dann muss ich My_script.py
ausführen, was ich nicht will.
Wenn das Übergeben von nichts äquivalent zum Übergeben von "-a" ohne einen Wert ist, warum lässt letzteres zu? Es macht es einfach, Fehler/Mehrdeutigkeiten beim Parsen zu machen. 'nargs = '?" "Art von Arbeiten (Sie müssen" None "manuell durch" 8 "ersetzen, wenn es passiert, denn wenn es ohne ein Argument angegeben wird, ist es nicht der Standardfall, also speichert es' None'), aber es ist eine schlechte Idee. – ShadowRanger
Das scheint mehrdeutig. Wie soll der Parser sagen, ob die Sache nach '-a' ein Wert für die Option '-a' oder ein Positionsargument ist? Ob argparse das unterstützt oder nicht, ich glaube nicht, dass dies eine gute Schnittstelle ist. – user2357112
Spielen Sie mit 'nargs = '?'' Und geben Sie 'default' und' const' Parameter. – hpaulj