Я пытаюсь написать код, который не повторяется, следуя принципу DRY.
Рассмотрим вызов функции с множеством аргументов, как обязательных, так и необязательных. В некоторых случаях я хотел бы указать значение для необязательного аргумента, тогда как в других случаях я хотел бы оставить это значение по умолчанию. Чтобы упростить мою проблему:
def func(a, b=2):
print("b = {}".format(b))
avalue = 1
condition = 2
arg = None # <-- Means: "use default"
if condition == 1:
arg = 3
func(avalue, b=arg)
Вывод:
b = None
Ожидаемый результат:
b = 2
Таким образом, я пытаюсь избежать двойного кодирования вызова функции следующим образом:
if arg:
func(avalue, b=arg)
else:
func(avalue)
Возможно ли это в Python?