网络编程
位置:首页>> 网络编程>> Python编程>> Python转换字典成为对象,可以用"."方式访问对象属性实例

Python转换字典成为对象,可以用"."方式访问对象属性实例

作者:**华  发布时间:2021-06-01 09:01:50 

标签:Python,转换,字典,对象

我就废话不多说了,大家还是直接看代码吧!


database = [
 {
   "name": "18D_Block",
   "xcc":{  
     "component": {
       "core":[],
       "platform":[]
     },
   },
   "uefi":{  
     "component": {
       "core":[],
       "platform":[]
     },
   }
 }
]
class Dict(dict):
 __setattr__ = dict.__setitem__
 __getattr__ = dict.__getitem__

def dict_to_object(dictObj):
 if not isinstance(dictObj, dict):
   return dictObj
 inst=Dict()
 for k,v in dictObj.items():
   inst[k] = dict_to_object(v)
 return inst
# 转换字典成为对象,可以用"."方式访问对象属性
res = dict_to_object(database[0])
print res.name
print res.xcc
print res.xcc.component
print res.xcc.component.core

补充知识:[Python] 字典 vars()函数:以字典类型提取对象的属性和属性值

功能

提取对象的属性和属性值,返回值为dictionary字典类型。

语法

vars(object)

实例


>>>print(vars())
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}

>>> class Test:
...   a = 1
...

>>> print(vars(Test))
{'a': 1, '__module__': '__main__', '__doc__': None}

>>> test = Test()
>>> print(vars(test))
{}

对于 x = 1,这样的一个赋值语句,我们在执行后,名称 x 引用到值 1。这就像字典一样,键引用值,当然,变量和所对应的值用的是个"不可见"的字典。我们可以使用 vars() 函数来返回这个字典:


>>> x = 1
>>> scope = vars()
>>> scope["x"]
1

来源:https://blog.csdn.net/u010870545/article/details/82771669

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com