__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)
作者: Deaseyy
出处: http://www.cnblogs.com/Deaseyy/
新手一枚,请大佬们多多赐教!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接