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

0 投票
1 回答
4781 浏览
提问于 2025-04-18 13:34

在使用关键字参数的时候,你不能仅仅通过字典来引用可能的关键字值,因为这些值可能并不存在。那么,有什么好的方法来引用那些可能存在也可能不存在的关键字值呢?我发现我经常这样做:

def save_link(link, user, **kwargs):

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

这样做是为了提供默认值,并创建一个总是存在的变量。有没有更好的方法呢?

1 个回答

6

你可以使用字典的 get 属性:

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

这样可以设置一个默认值(在这个例子中是 False)。

不过,使用这种方法时要非常小心,因为这种代码不会对错误的关键字参数发出警告。比如,有人调用 funct(1,2,auot=True),看起来一切正常。你可能需要检查一下你收到的关键字参数是否在某个特定的列表里。

撰写回答