Вот минимальный пример, где fun действует на dict. Представьте, что в реальном примере вычисление a**2 обходится дорого. Тогда я бы хотел, чтобы, когда b=None на входе, a**2 не вычислялся и напрямую заменялся на None на выходе. Я хотел бы не переопределять новую функцию для этого.
Код: Выделить всё
def fun(d):
a = d["a"]
return dict(a=0, b=a**2)
d0 = dict(a=3, b=1)
res0 = fun(d0) # Output is {'a': 0, 'b': 9}
d1 = dict(a=3, b=None)
res1 = fun(d1) # Output still {'a': 0, 'b': 9}, but want {'a': 0, 'b': None} without ever calculating a**2=9
Подробнее здесь: https://stackoverflow.com/questions/798 ... leaves-are
Мобильная версия