如何使用Python魔法方法__missing__进行字典缺失键处理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2165个文字,预计阅读时间需要9分钟。
本章节为家长带来了关于Python的相关知识,其中重点介绍了__missing__(self, key)函数的相关问题。下面我们来一起探究这个神奇函数,希望对家长有所帮助。
推荐学习:Python学习教程+1
本篇文章给大家带来了关于python的相关知识,其中主要介绍了“__missing__()”函数的相关问题,下面我们就一起来看一下这个魔法函数,希望对大家有帮助。推荐学习:python学习教程
1、有点价值的__missing__()
从普通的字典中取值时,可能会出现 key 不存在的情况:
dd = {'name':'PythonCat'} dd.get('age') # 结果:None dd.get('age', 18) # 结果:18 dd['age'] # 报错 KeyError dd.__getitem__('age') # 等同于 dd['age']
对于 get() 方法,它是有返回值的,而且可以传入第二个参数,作为 key 不存在时的返回内容,因此还可以接受。但是,另外两种写法都会报错。
为了解决后两种写法的问题,就可以用到 __missing__() 魔术方法。
现在,假设我们有一个这样的诉求:从字典中取某个 key 对应的 value,如果有值则返回值,如果没有值则插入 key,并且给它一个默认值(例如一个空列表)。
本文共计2165个文字,预计阅读时间需要9分钟。
本章节为家长带来了关于Python的相关知识,其中重点介绍了__missing__(self, key)函数的相关问题。下面我们来一起探究这个神奇函数,希望对家长有所帮助。
推荐学习:Python学习教程+1
本篇文章给大家带来了关于python的相关知识,其中主要介绍了“__missing__()”函数的相关问题,下面我们就一起来看一下这个魔法函数,希望对大家有帮助。推荐学习:python学习教程
1、有点价值的__missing__()
从普通的字典中取值时,可能会出现 key 不存在的情况:
dd = {'name':'PythonCat'} dd.get('age') # 结果:None dd.get('age', 18) # 结果:18 dd['age'] # 报错 KeyError dd.__getitem__('age') # 等同于 dd['age']
对于 get() 方法,它是有返回值的,而且可以传入第二个参数,作为 key 不存在时的返回内容,因此还可以接受。但是,另外两种写法都会报错。
为了解决后两种写法的问题,就可以用到 __missing__() 魔术方法。
现在,假设我们有一个这样的诉求:从字典中取某个 key 对应的 value,如果有值则返回值,如果没有值则插入 key,并且给它一个默认值(例如一个空列表)。

