Seite 1 von 1

argparse

Verfasst: Freitag 28. Oktober 2011, 07:25
von mit
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.

Re: argparse

Verfasst: Freitag 28. Oktober 2011, 09:18
von EyDu
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

Re: argparse

Verfasst: Freitag 28. Oktober 2011, 13:27
von lunar
@EyDu: Beim zweiten Vorschlag würde ich nicht mehr unbedingt von vereinfachen sprechen…