gpt4 book ai didi

Python 迭代器,用于迭代函数

转载 作者:行者123 更新时间:2023-12-01 05:48:17 25 4
gpt4 key购买 nike

所以我必须使以下函数 -> 迭代。在第一次调用时,它应该在第二个 func 上返回标识,在第三个 func.func 上返回标识。知道怎么做吗?我尝试查看 iternext 方法 buf 失败:(

>>> def double(x):
return 2 * x

>>> i = iterate(double)
>>> f = next(i)
>>> f(3)
3
>>> f = next(i)
>>> f(3)
6
>>> f = next(i)
>>> f(3)
12
>>> f = next(i)
>>> f(3)
24

最佳答案

也许是这样的:

>>> import functools
>>> def iterate(fn):
def repeater(arg, _count=1):
for i in range(_count):
arg = fn(arg)
return arg
count = 0
while True:
yield functools.partial(repeater, _count=count)
count += 1


>>> i = iterate(double)
>>> f, f2, f3, f4 = next(i), next(i), next(i), next(i)
>>> f(3), f2(3), f3(3), f4(3)
(3, 6, 12, 24)
>>> f(3), f2(3), f3(3), f4(3)
(3, 6, 12, 24)

因此,您编写了一个函数,该函数调用原始函数指定为参数的次数,并预先绑定(bind)了 count 参数。

关于Python 迭代器,用于迭代函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15365790/

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