gpt4 book ai didi

python - 将参数传递给具有命名参数的函数

转载 作者:行者123 更新时间:2023-12-05 08:40:01 26 4
gpt4 key购买 nike

如何将命名参数从另一个函数传递给一个函数?

在过去的 8 小时里,我查看了 wrappers、argparse、Google。我错过了一些重要的时间。

def my_func(a='something', b='something_else'):
# add a and b
return something

def slave(func, args):
result = func(args)
return result

slave_work = {my_func, (a=50, b=90)}

print (slave(slave_work)

应该输出 140。我怎样才能做到这一点?

最佳答案

您现在所做的只是将一个集合作为单个参数传递给 slave。因此,您可能会在缺少位置参数时遇到 TypeError

你可能想把你的 slave_work 变成一个字典(现在它是一个集合),然后它看起来像:

slave_work = {'func': my_func, 'args': {'a': 50, 'b': 90}}

现在你可以解压字典了:

print(slave(**slave_work))

这或多或少等同于:

print(slave(func=slave_work['func'], args=slave_work['args'])

然后在您的 slave 函数中相应地更改为:

result = func(**args)

另一种选择是使用列表(或本例中的元组)解包。所以你的slave_work也可以是:

slave_work = {'func': my_func, 'args': (50, 90)}

然后你对 slave 的调用将是相同的,但是 inside slave 更改为:

result = func(*args)

不同之处在于,这将根据参数的位置而不是名称来解压参数。

关于python - 将参数传递给具有命名参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57476468/

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