Python:kwargs.pop() 和 kwargs.get() 之间的区别

新手上路,请多包涵

我已经看到了两种方式,但我不明白有什么区别以及我应该使用什么作为“最佳实践”:

 def custom_function(**kwargs):
    foo = kwargs.pop('foo')
    bar = kwargs.pop('bar')
    ...

def custom_function2(**kwargs):
    foo = kwargs.get('foo')
    bar = kwargs.get('bar')
    ...

原文由 Aliquis 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
1 个回答

get(key[, default]) :如果键在字典中,则返回键的值,否则返回默认值。如果未给出默认值,则默认为无,因此此方法永远不会引发 KeyError

 d = {'a' :1, 'c' :2}
print(d.get('b', 0)) # return 0
print(d.get('c', 0)) # return 2

pop(key[, default]) 如果键在字典中,删除它并返回它的值,否则返回默认值。如果未给出默认值且密钥不在字典中,则会引发 KeyError

 d = {'a' :1, 'c' :2}
print(d.pop('c', 0)) # return 2
print(d) # returns {'a': 1}
print(d.get('c', 0)) # return 0

注意: 关于最佳实践问题,我会说这取决于您的用例,但我会默认为 .get 除非我真的需要 .pop

原文由 Dhia 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题