首页 > 解决方案 > 如何堆叠多个调用?

问题描述

我在一个 python 类中,其中一项任务是创建一个可以“链接”多个调用的函数。例如,我有一个函数,比如说。我可以写 say() 并且什么都不会返回。我可以写 say('hi')() ,它会返回 'hi'。我可以写 say('hi')('my')('name')('is')('joe') ,它会返回 'hi my name is joe'。我很确定我们应该使用高阶函数,但我无法理解它,到目前为止我尝试过的肯定是不正确的:

sayString = ""

say(x):
    compose sayHelp(x)

def sayHelp(x):
    global sayString
    return sayString + x

def compose(f, g):
    return lambda x: f(x)+g(x)

不太确定该怎么做,我知道它不起作用,因为它试图调用 str 函数而不是说,但是我如何让它识别呢?

标签: pythonhigher-order-functions

解决方案


推荐阅读