gpt4 book ai didi

有条件地传递关键字参数的 Pythonic 方式

转载 作者:太空狗 更新时间:2023-10-29 17:27:33 25 4
gpt4 key购买 nike

是否有更 pythonic 的方法来做到这一点?

if authenticate:
connect(username="foo")
else:
connect(username="foo", password="bar", otherarg="zed")

最佳答案

  1. 您可以像这样将它们添加到 kwargs 列表中:

    connect_kwargs = dict(username="foo")
    if authenticate:
    connect_kwargs['password'] = "bar"
    connect_kwargs['otherarg'] = "zed"
    connect(**connect_kwargs)

    当您有一组可以传递给函数的复杂选项时,这有时会很有帮助。在这个简单的例子中,我认为你拥有的更好,但这可以被认为是 more pythonic 因为它不像 OP 那样重复 username="foo" 两次。

  2. 也可以使用这种替代方法,尽管它只有在您知道默认参数是什么的情况下才有效。由于重复的 if 子句,我也不认为它非常“pythonic”。

    password = "bar" if authenticate else None
    otherarg = "zed" if authenticate else None
    connect(username="foo", password=password, otherarg=otherarg)

关于有条件地传递关键字参数的 Pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8686225/

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