关于python:解包关键字参数(kwargs)的正确方法

The correct way to unpack keyword arguments (kwargs)

本问题已经有最佳答案,请猛点这里访问。

对于关键字参数,不能只引用dict中的潜在关键字值,因为它们可能不存在。引用可能存在或不存在的关键字值的最佳方法是什么?我发现自己在做这样的事情:

1
2
3
4
5
6
def save_link(link, user, **kwargs):

    if"auto" in kwargs:
        auto = kwargs["auto"]
    else:
        auto = False

以便提供默认值并创建可靠存在的变量。有更好的方法吗?


您可以使用dict的get属性:

1
auto = kwargs.get('auto', False)

这允许使用默认值(本例中为False)。

但是,请小心使用这种方法,因为这种代码不会抱怨关键字参数错误。有人打电话给funct(1,2,auot=True),一切看起来都很好。您可以考虑检查您收到的禁运是否属于某个特定的列表。