正确解包关键字参数(kwargs)的方法
在使用关键字参数的时候,你不能仅仅通过字典来引用可能的关键字值,因为这些值可能并不存在。那么,有什么好的方法来引用那些可能存在也可能不存在的关键字值呢?我发现我经常这样做:
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)
,看起来一切正常。你可能需要检查一下你收到的关键字参数是否在某个特定的列表里。