gpt4 book ai didi

python - 将多个函数应用于函数式 Python 中的同一个参数

转载 作者:太空宇宙 更新时间:2023-11-04 10:18:43 24 4
gpt4 key购买 nike

我正在尝试“反转”map(相同的函数,多个参数),以防我有多个函数要应用于相同的参数。我正在尝试寻找一种更实用的方法来替代经典

arg = "My fixed argument"
list_of_functions = [f, g, h] #note that they all have the same signature
[fun(arg) for fun in list_of_functions]

我唯一能想到的就是

map(lambda x: x(arg), list_of_functions)

这不是很好。

最佳答案

你可以试试:

from operator import methodcaller

map(methodcaller('__call__', arg), list_of_functions)

operator模块也有类似的功能,用于从对象中获取固定属性或项目,通常在函数式编程风格中很有用。没有直接调用可调用对象,但是 methodcaller足够接近了。

不过,在这种情况下,我个人更喜欢列表推导式。也许如果在 operator 模块中有一个直接的等价物,比如:

def functioncaller(*args, **kwargs):
return lambda fun:fun(*args, **kwargs)

...将其用作:

map(functioncaller(arg), list_of_functions)

……那也许就足够方便了?

关于python - 将多个函数应用于函数式 Python 中的同一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33659139/

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