pickle模組 collections模組在物件導向中的應用

想吃橙子發表於2019-03-28

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))

 

相關文章