hello world

人生若只如初见

2019-8-18 序列化与面向对象

今日内容

序列化模块

json模块

json是一种通用的数据传输格式,本质就是一个字符串.
序列化(dump/dumps)和反序列化(load/loads)
import json
dic = {'北京':{'朝阳':{},'海淀':{}}}
text= json.dumps(dic,ensure_ascii=False)   # 序列化的过程 把字典/其它数据类型转换成字符串 
# 如果字典中有中文,希望写入文件的数据也显示为中文,就需要添加参数ensure_ascii=False
print(text)
with open('city',mode = 'w',encoding='utf-8') as f:
    f.write(text)

with open('city',encoding='utf-8') as f:
    str_d = f.read()
    print(str_d)
    dic = json.loads(str_d)
print(dic)
//和文件操作时dump和load方法可简化步骤
import json
lst = ['alex',1,2,3]
with open('file','w',encoding='utf-8') as f:
    json.dump(lst,f)

import json
with open('file',encoding='utf-8') as f:
    ret = json.load(f)
    print(ret)

pickle模块

pickle和json的区别
pickle 支持python中的几乎所有数据类型,但是只能python一种语言中使用
json   支持所有的语言,但只支持有限的数据类型
import pickle
dic = {'北京':{'朝阳','昌平'},('天津','河北'):[1,2,3]}
ret = pickle.dumps(dic)
print(ret)
d = pickle.loads(ret)
print(d)

with open('pickle_file','wb') as f:
    pickle.dump(dic,f)
with open('pickle_file', 'rb') as f:
    ret = pickle.load(f)
    print(ret)

面向对象

初识面向对象

什么是类?       一系列具有相同属性和相似方法的事物的抽象
什么是对象?     一个带有具体属性值的类的实例
什么是实例化?   通过类创造对象的过程

面向对象语法

class Person:   # Person是类
    def __init__(self,name,hp,ad,sex,job):
       self.username = name
       self.hp = hp
       self.ad = ad
       self.sex = sex
       self.job = job

alex = Person('alex',100,5,'不详','乞丐')   # alex是对象 这是实例化的过程
class Person:
    def __init__(self,name,hp,ad,sex,job):
       self.username = name
       self.hp = hp
       self.ad = ad
       self.sex = sex
       self.job = job

class Dog:
    def __init__(self,name,kind,hp,ad):   # 初始化方法
      self.name = name
      self.kind = kind
      self.hp = hp
      self.ad = ad
    def bite(self,person):
        person.hp -= self.ad
        print('%s咬了%s,%s掉了%s点血'%(self.name,person.username,person.username,self.ad))    
        # 谁在类的外部调用了这个方法,方法中的第一个self参数就是谁
alex = Person('alex',100,5,'不详','乞丐')
旺财 = Dog('旺财','teddy',2000,300)
二饼 = Dog('二饼','哈士奇',10000,500)
二饼.bite(alex)     # Dog.bite(二饼,alex)
print(alex.hp)

posted on 2019-08-22 22:18  一壶兔  阅读(136)  评论(0编辑  收藏  举报

导航