Python中是否有链调用方法?

Sha*_*Dor 7 python

Python中是否有一个函数可以执行此操作:

val = f3(f2(f1(arg)))
Run Code Online (Sandbox Code Playgroud)

通过键入此(例如):

val = chainCalling(arg,f3,f2,f1)
Run Code Online (Sandbox Code Playgroud)

我只是觉得,因为python(可以说)是一种函数式语言,我正在寻找的函数会使语法更明亮

Mar*_*ers 10

使用该reduce()函数链接调用:

from functools import reduce

val = reduce(lambda r, f: f(r), (f1, f2, f3), arg)
Run Code Online (Sandbox Code Playgroud)

我使用了前向兼容functools.reduce()功能 ; 在Python 3 reduce()中不再位于内置命名空间中.

  • @zmo:我给出了一个向前兼容的版本,它存在于 Python 2 中。 (3认同)