У меня есть набор вложенных партиалов, которые я пытаюсь вызвать:
print(my_partial)
functools.partial(<function g at 0x000001A047370598>,
functools.partial(<function f at 0x000001A047370620>,
functools.partial(<function c at 0x000001A047370400>, 5)))
поэтому, когда я пытаюсь запустить свою частичку, я возвращаю внутреннюю частичку:
print(my_partial)
functools.partial(<function f at 0x000001A047370620>,
functools.partial(<function c at 0x000001A047370400>, 5))
(или как-то так). В любом случае, чтобы запустить это, чтобы получить окончательное преобразование на 5
(входные данные), я должен сделать это:
print(my_partial()()()())
25
Есть ли функция functools
, в которую я могу передать эти вложенные партиалы, чтобы она просто запустила все это для меня? Примерно так:
print(functools.run_partials(my_partial))
25
Существует ли что-то подобное? Надеюсь, что решение, над которым я работаю, глючит:
def run_nested(x):
print(str(type(x())))
if 'functools.partial' in str(type(x())):
run_nested(x())
print('DONE!', x())
return x()