gpt4 book ai didi

python - 递归传递关键字

转载 作者:太空宇宙 更新时间:2023-11-04 05:27:46 25 4
gpt4 key购买 nike

我有一个看起来像这样的函数:

def bootstrap(instrument, parallel_process=True, **kw):
prices = instrument.prices(**kw)

我希望能够传递关键字参数,以便内部位知道该做什么。

我将用类似的方式来调用它:

bootstrap(my_instrument, parallel_process=True, key1=True, key2=45)

我希望后面的部分可以通过价格。它将通过我的代码中的多个层。

我这样做对吗?似乎无法设置默认关键字参数。

所以这样:

def prices(ccy_index=True, **kw):
print(ccy_index)

**kw 中传递 ccy_index=False 时将不起作用 - 它仍然认为 ccy_index=True

这个策略一团糟,我担心它很脆弱。我想要的是一组全局选项,代码的所有不同位都可以从中提取它们的相关位,或者默认为函数中配置的内容。换句话说,类似于关键字参数,但递归定义。

最佳答案

我相信这可以满足您的要求:

def prices(**kw_in):
kw = dict(ccy_index=True) # Defaults
kw.update(kw_in)
print(kw["ccy_index"])

通过这种方式,您可以通过 **kw 递归传递参数,并在每个阶段分配默认值。

使用上面的代码:

>>> prices()
True
>>> prices(ccy_index=True)
True
>>> prices(ccy_index=False)
False

关于python - 递归传递关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38198304/

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