Solution Pythonic pour le passage d'arguments conditionnels

J'ai une fonction à deux paramètres optionnels:

def func(a=0, b=10):
    return a+b

Quelque part dans mon code je fais un certain conditionnelle passant comme argument:

if a and b:
   return func(a, b)
elif a:
   return func(a)
elif b:
   return func(b=b)
else:
   return func()

Est-il de toute façon à simplifier le code dans ce schéma?

MODIFIER:

Supposons que je suis pas autorisés à en œuvre de paramètre par défaut de la logique à l'intérieur de func.

Je peut avoir plusieurs fonctions comme func: func1func2 et func3 serait contiennent tous les

a = a or 0
b = b or 10

consolidés.

Mais je suis de l'appel de ces séries de fonctions pour éviter les doublons. (à l'aide d'un décorateur)

source d'informationauteur satoru