1. 程式人生 > >__dict__用法-json使用

__dict__用法-json使用

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使用