__dict__用法-json使用

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)

 

 

转载于:https://www.cnblogs.com/Deaseyy/p/10859870.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值