gpt4 book ai didi

python - 如何在 Python 中将函数作为函数参数传递

转载 作者:太空狗 更新时间:2023-10-30 00:23:27 25 4
gpt4 key购买 nike

这是我目前拥有的并且工作正常:

def iterate(seed, num):
x = seed
orbit = [x]
for i in range(num):
x = 2 * x * (1 - x)
orbit.append(x)
return orbit

现在,如果我想将第 5 行的迭代方程更改为 x = x ** 2 - 3,我将不得不使用除第 5 行之外的所有相同代码创建一个新函数。我如何创建可以将函数作为参数的更通用的函数?

最佳答案

函数是 first-class citizens在 Python 中。您可以将函数作为参数传递:

def iterate(seed, num, fct):
# ^^^
x = seed
orbit = [x]
for i in range(num):
x = fct(x)
# ^^^
orbit.append(x)
return orbit

在您的代码中,您将传递所需的函数作为第三个参数:

def f(x):
return 2*x*(1-x)

iterate(seed, num, f)
# ^

或者

def g(x):
return 3*x*(2-x)

iterate(seed, num, g)
# ^

或者……


如果您不想每次都命名一个新函数,您可以选择传递一个匿名函数(即:lambda):

iterate(seed, num, lambda x: 3*x*(4-x))

关于python - 如何在 Python 中将函数作为函数参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28795981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com