python - 我无法理解这个封闭的功能
问题描述
为什么可以调用 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))
解决方案
funtionsaufsummerier_fabrik
是一个构建另一个函数并返回该构造的函数。是的,x
是函数引用。内部函数将调用x
指定范围内的每个值,返回这些幂的总和。
kubiksumme
是对立方体求和的构造函数;quadratsumme
是对平方和的构造函数。当你打电话kubiksumme(4)
时,效果将是
return sum([kubik(i) for i in range (1, 4+1)])
这是否为您清除了功能?
推荐阅读
- c# - 应用内购买不使用 Google Play 服务
- python - pylatex:如何应用 {\centering
} 围绕图形和/或文本? - vuejs2 - 如何让 nuxtServerInit 在服务器上调度操作?
- angular - LeafletJS 图像覆盖设置边界
- typescript - 从继承的类型访问泛型
- biztalk - BizTalk WCF-WebHttp URI 映射问题与转义变量
- sql - 如何使用子查询在同一查询中获取年和月中的 2 个日期之间的差异?
- asp.net-mvc - 当我的查询在 HTML 中有一个匿名对象和迭代时,会出现什么错误
- github - google colab 上只有 *一些* 私有 github 存储库可见
- vue.js - 父子组件之间的 $ref 问题