您可以使用
lambda:
repeat(lambda: bar(42))
或
functools.partial:
from functools import partialrepeat(partial(bar, 42))
或分别传递参数:
def repeat(times, f, *args): for _ in range(times): f(*args)
这种最终样式在标准库和主要的Python工具中非常常见。
*args表示可变数量的参数,因此您可以将该函数用作
repeat(4, foo, "test")
要么
def inquisition(weapon1, weapon2, weapon3): print("Our weapons are {}, {} and {}".format(weapon1, weapon2, weapon3))repeat(10, inquisition, "surprise", "fear", "ruthless efficiency")
请注意,为方便起见,我将重复次数放在前面。如果要使用该
*args构造,它不能是最后一个参数。
(为完整起见,您还可以添加关键字参数
**kwargs。)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)