如何从字典初始化Python的SimpleNamespace对象?
用字典初始化SimpleNamespace实现点标记法访问
哈哈,这个问题其实超容易解决!你说的没错,SimpleNamespace就是专门用来让我们像访问对象属性那样用点标记法操作键值对的,但它的构造函数只接受关键字参数,直接传字典肯定会报错啦。
解决方法很简单,用Python的字典拆包语法(**)把字典转换成关键字参数传给SimpleNamespace就行:
from types import SimpleNamespace # 你的原始字典 d = {'a': 1, 'b': 2} # 用**拆包字典初始化SimpleNamespace obj = SimpleNamespace(**d) # 现在就能用点标记法访问啦! print(obj.a) # 输出: 1 print(obj.b) # 输出: 2
顺带提一句:如果你的字典里有不符合Python属性命名规则的键(比如带空格、特殊符号或者数字开头),这种方法就不适用了,因为SimpleNamespace的属性名必须是合法的标识符。但如果你的字典键都是常规的合法名称,这个方法绝对完美解决你的需求~
内容的提问来源于stack exchange,提问作者MvdD
相关产品推荐
相关产品推荐

