argparse

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mit
User
Beiträge: 278
Registriert: Dienstag 16. September 2008, 10:00

Freitag 28. Oktober 2011, 07:25

Hallo,
Hat argparse eine einfachere Moeglichkeit folgenden Code zu vereinfachen?

Code: Alles auswählen

import argparse

def default_func():
   print "default"

def func():
   print "func"

parser = argparse.ArgumentParser()
parser.add_argument('--file', nargs='?')
args = parser.parse_args()

if args.file == None:
   default_func()
else:
   func()
Ausgabe:
$ python t2.py --file test.txt
func
$ python t2.py
default

Vielen Dank im Vorraus.
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Freitag 28. Oktober 2011, 09:18

Hallo.

Ich hätte da zwei Vorschläge:

Code: Alles auswählen

(default_func if args.file is None else func)()
oder

Code: Alles auswählen

(func, default_func)[args.file is None]()
Wenn `default_func` und `func` verschiedene Parameter bekommen, dann würde ich bei dem einfache if/else-Konstrukt bleiben. Das ist in jedem Fall übersichtlich.

Sebastian
Das Leben ist wie ein Tennisball.
lunar

Freitag 28. Oktober 2011, 13:27

@EyDu: Beim zweiten Vorschlag würde ich nicht mehr unbedingt von vereinfachen sprechen…
Antworten