首页 > Web开发 > 详细

__dict__用法-json使用

时间:2019-05-14 01:29:22      阅读:44      评论:0      收藏:0      [点我收藏+]

标签:self.   结果   类型   focus   elf   json字符串   nta   em1   _属性   

dict使用

?
print()
‘‘‘
__dict__ 获取对象封装的所有属性,以字典形式保存
‘‘‘
?
class student():
    # __slots__ = ("name","age")  #使用slots后实例对象不再有__dict__属性
    def __init__(self,name,age):
        self.name = name
        self.age = age
?
dict1={"age":1,"k":5}
dict2={"age":1,"k":5,"score":80}
stu = student("lili",18)
stu2=student("aa",20)
print(stu.__dict__)
print(stu.age)
stu.__dict__ = dict1  #可以将该对象封装的所有属性重新赋值
stu.__dict__ = dict2  #可以将该对象封装的所有属性重新赋值
print(stu.__dict__) #赋值后结果已改变
print(stu.age)
print(stu.score)  #改变了该对象name,age属性,增加了score属性
print(stu2.age)  #不会改变类中其他对象的属性

json

 1 import json
 2 class student():
 3     def __init__(self,name,age,sex):
 4         self.name = name
 5         self.age = age
 6         self.sex = sex
 7 stu1 = student("lili",18,True)
 8 def objDict(obj):
 9     return {"name":obj.name,"age":obj.age,"sex":obj.sex}
10 ?
11 with open("dem1","w") as f:
12     # stuDict1 = objDict(stu1)  ##将student类型转为字典(基本类型)
13     # strjson = json.dumps(stuDict1)  ##将python字典转为json字符串类型
14     # print(strjson)
15     # f.write(strjson)
16 ?
17     # strjson = json.dumps(stu1,default=objDict)
18     strjson = json.dumps(stu1,default=lambda obj:obj.__dict__)
19     f.write(strjson)
20 ?
21 with open("dem1","r") as f1:
22     stuDict2 = f1.read()
23     res = json.loads(stuDict2)  #将json字符串转为python字典类型
24     # stu1 = student(res["name"],res["age"],res["sex"])
25     stu1.__dict__ = res   #将得到的属性字典直接赋值给对象__dict__获取到的属性
26 ?
27 print(stu1.name)
28 print(stu1.age)

 

 

__dict__用法-json使用

标签:self.   结果   类型   focus   elf   json字符串   nta   em1   _属性   

原文:https://www.cnblogs.com/Deaseyy/p/10859870.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 designnerd.net 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号