[英]i cannot understand this enclosing function
why kubik() can be called?为什么可以调用 kubik() ?
def funtionsaufsummerier_fabrik(x):
def funktionaufsummerier(n):
return sum([x(i) for i in range (1, n+1)])
return funktionaufsummerier
i cannot understand the function above.我无法理解上面的功能。 x = kubik or x= kubik()? x = kubik 或 x = kubik()? and when i run this code on python tutor, def funktionaufsummerier(n):
is run first.当我在 python tutor 上运行此代码时,首先运行def funktionaufsummerier(n):
But i think, funtionsaufsummerier_fabrik(x)
will jump straight to return
and then return 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
is a function that builds another function, returning that construction. funtionsaufsummerier_fabrik
是一个构建另一个函数并返回该构造的函数。 Yes, x
is a function reference.是的, x
是函数引用。 The inner function will call x
on each value in the indicated range, returning the sum of those powers.内部函数将对指定范围内的每个值调用x
,返回这些幂的总和。
kubiksumme
is a constructed function to sum cubes; kubiksumme
是一个对立方体求和的构造函数; quadratsumme
is a constructed function to sum squares. quadratsumme
是一个用于计算平方和的构造函数。 When you call kubiksumme(4)
, the effect will be当您调用kubiksumme(4)
时,效果将是
return sum([kubik(i) for i in range (1, 4+1)])
Does that clear up the functions for you?这是否为您清除了功能?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.