ich eine Funktion mit zwei optionalen Parametern:Pythonic Lösung für die bedingten Argumente zu übergeben
def func(a=0, b=10):
return a+b
Irgendwo anders in meinem Code ich etwas bedingtes Argument tue wie vorbei:
if a and b:
return func(a, b)
elif a:
return func(a)
elif b:
return func(b=b)
else:
return func()
Gibt es trotzdem zu Code in diesem Muster vereinfachen?
EDIT:
Nehmen wir an, dass ich nicht erlaubt Standard-Parameter Logik innerhalb func
zu implementieren.
kann ich mehrere Funktionen haben wie func
: func1
, func2
und func3
würden alle enthalten die
a = a or 0
b = b or 10
Aussagen.
Aber ich rufe diese Reihe von Funktionen auf, um Doppelarbeit zu vermeiden. (Verwendung eines Dekorators)
wenn "b == 0" absichtlich könnte dies einen Fehler verursachen. – moooeeeep
Verschieben Sie das Muster in der Funktion? – Apalala