gpt4 book ai didi

Python:如何创建带有设置参数的函数指针?

转载 作者:太空宇宙 更新时间:2023-11-03 12:19:39 25 4
gpt4 key购买 nike

我的问题:

鉴于以下情况:

def foo(a,b)

我在为“a”传递列表时尝试调用 python“map”函数,但为“b”使用设置值。

另一个相关事实是“b”是用户输入,因此我不能使用语法:

def foo(a,b='default value')

我希望我的“ map ”调用看起来像这样:

map(foo_wrapper,list_for_a)

其中“foo_wrapper”是接受“a”但使用用户指定的“b”的函数。

我不知道函数指针是否可以这样指定,我怀疑它们不能。

我对这个问题的解决方案是使用全局变量,所以如果有更优雅的方法并且上面的方法是不可能的,我也会将其标记为答案。

简而言之,这是我的解决方案:

b = ''
def foo(a,b):
print b,a

def foo_wrapper(a):
foo(a,b)

def main():
if sys.argv[1]:
a = ['John', 'Jacob', 'Jingle all the way']
global b
b = sys.argv[1]
map(foo_wrapper,a)

上面可能有一两个错别字;我正在简化我实际需要做的问题。

感谢回复!

最佳答案

您可以使用 functools.partial()为此目的:

from functools import partial

def f(a, b):
return a + b

x = range(10)
print map(partial(f, b=3), x)

打印

[3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

关于Python:如何创建带有设置参数的函数指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5044633/

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