Python之面向对象的综合练习(模拟网上购物)

Pickle模块的使用

  • pickle提供了一个简单的持久化功能,可以将对象以文件的形式存放到磁盘上,此模块只能在Python中使用,且Python中所有数据类型【list,string,tuple,dict,set,对象】都可以使用pickle进行序列化和反序列化
  • pickle.dump(obj,file,protocol = None),其中obj:将要封装的对象;file:obj将要写入的文件对象【注意:必须以二进制可写形式打开,“wb”】;protocol:可选参数,表示告知pickle的协议,支持的协议有0,1,2,3,默认协议为3
import pickle
class Person(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def show(self):
        print("name:%s age:%d" %(self.name,self.age))
p = Person("李四",10)
p.show()

f = open("file1.txt","wb")     #类似于write的使用,文件不存在,则自动创建
pickle.dump(p,f)
f.close()
  • 反序列化:将本地磁盘上存储的对象读取出来
f1 = open("file1.txt","rb")    #要读取的文件对象,file必须以二进制可读的形式打开,"rb"
p1 = pickle.load(f1)
p1.show()

注意:pickle序列化的数据,人一般无法识别

综合练习 【模拟网上购物的整套流程:注册,登录,购买,删除,结算,退出】

  1. 分析:模拟网上购物,需要定义5个类:商品类,用户类,购物车类,仓库类,功能类
  2. 商品类:需要提供商品名称,商品价格和商品剩余量
  3. 用户类:需要提供用户id,用户的密码,用户拥有的购物车,用户的登录状态
  4. 购物车类:程序最始,商品列表为空
  5. 仓库类:信息保存在本地磁盘,程序刚启动时把列表先存储到文件中,之后使用的时候再读出来
  6. 功能类:一个程序可能有很多用户,则需要将用户以字典的形式保存在本地。实现用户的注册,登录,购买,删除,结算,退出操作
"""
商品类:
    商品名称  商品价格  商品剩余量
"""
class Goods(object):
       def __init__(self,name,price,balance):
              self.name = name
              self.prince = prince
              self.balance = balance
       def __str__(self):
              return "[goods] name:%s  prince:%d  balabce:%d" %(self.name,self.price,self.balance)
"""
用户类
    姓名  用户id【这个标识对于每个用户而言是唯一的]】    密码     拥有购物车  用户登录状态【默认为 False 表示没有登录】

"""
class User(object):
       def __init__(self,name,uid,psw,shopping_car,islogin):
              self.name = name
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值