首页 > 解决方案 > 我无法理解这个封闭的功能

问题描述

为什么可以调用 kubik() ?

def funtionsaufsummerier_fabrik(x):
    def funktionaufsummerier(n):
        return sum([x(i) for i in range (1, n+1)])
    return funktionaufsummerier

我无法理解上面的功能。x = kubik 还是 x= kubik()?当我在 python 导师上运行这段代码时, def funktionaufsummerier(n):首先运行。但我想,funtionsaufsummerier_fabrik(x)会直接跳到return然后返回def funktionaufsummerier(n):

def kubik(i):
    return i*i*i

def quadrat(i):
    return i*i


kubiksumme = funtionsaufsummerier_fabrik(kubik)
quadratsumme = funtionsaufsummerier_fabrik(quadrat)

print(kubiksumme(4))

标签: python

解决方案


funtionsaufsummerier_fabrik是一个构建另一个函数并返回该构造的函数。是的,x是函数引用。内部函数将调用x指定范围内的每个值,返回这些幂的总和。

kubiksumme是对立方体求和的构造函数;quadratsumme是对平方和的构造函数。当你打电话kubiksumme(4)时,效果将是

    return sum([kubik(i) for i in range (1, 4+1)])

这是否为您清除了功能?


推荐阅读