zoukankan      html  css  js  c++  java
  • pickle模块 collections模块在面向对象中的应用

    pickle模块

    可以把对象实例化的结果通过文件操作存入文件再读取出来 

    读取出的结果是字典

    可以直接调用

    在登录注册等程序时可以简化、方便操作

    import pickle
    class Course:
        def __init__(self,name,price,period):
            self.name = name
            self.price = price
            self.period = period
    
    python = Course('python',20000,'6 months')
    linux = Course('linux',15800,'5 months')
    import pickle
    with open('pickle_file','ab') as f:
        pickle.dump(python,f)
        pickle.dump(linux,f)
    
    import pickle
    with open('pickle_file','rb') as f:
        obj1 = pickle.load(f)
        obj2 = pickle.load(f)
        while True:
            try:
                obj = pickle.load(f)
                print(obj.__dict__)
            except EOFError:
                break

    如果不知道已经存入文件的大小 可以在读取的时候采用循环读取 异常处理  避免报错

    collections模块中的namedtuple

    可以把创造出的命名元组转为一个类

    此时的类里的属性不可更改,没有方法,就是一种元类

    from collections import namedtuple
    
    Course = namedtuple('Course',['name','price','period'])
    python = Course('python',20000,'6 month')
    print(python.name)
    print(python.price)
    print(python.period)
    print(type(python))
  • 相关阅读:
    2017年5月15号课堂笔记
    2017年5月12号课堂笔记
    2017年5月8号课堂笔记
    2017年5月5号课堂笔记
    2017年4月26号课堂笔记
    不忘初心,坚持走下去
    2017年4月24号课堂笔记
    2017年4月21号课堂笔记
    2017年4月19号课堂笔记
    autoit UIA获取Listview的信息
  • 原文地址:https://www.cnblogs.com/biulo/p/10616817.html
Copyright © 2011-2022 走看看