import pickle
#
class Elephant:def __init__(self, name, weight, height):self.name = nameself.weight = weightself.height = heightdef tiaoxi(self):print(f"{self.name}大象特別喜歡調戲人")# e = Elephant("寶寶", "185T", "175")
# e.tiaoxi()
#
# # 序列化
# bs = pickle.dumps(e) # 把對象進行序列化
# print(bs)
#
# bs = b'\x80\x03c__main__\nElephant\nq\x00)\x81q\x01}q\x02(X\x04\x00\x00\x00nameq\x03X\x06\x00\x00\x00\xe5\xae\x9d\xe5\xae\x9dq\x04X\x06\x00\x00\x00weightq\x05X\x04\x00\x00\x00185Tq\x06X\x06\x00\x00\x00heightq\x07X\x03\x00\x00\x00175q\x08ub.'
# # 發序列化
# dx = pickle.loads(bs) # 發序列化. 得到的是大象
# dx.tiaoxi()# e1 = Elephant("寶寶", "185T", "175")
# e2 = Elephant("寶貝", "120T", "120")
# f = open("大象", mode="wb")
# # 這也是序列化
# pickle.dump(e1, f) # 沒有s的這個方法是把對象打散寫入到文件, 序列化的內容不是給人看的
# pickle.dump(e2, f) # 沒有s的這個方法是把對象打散寫入到文件, 序列化的內容不是給人看的# f = open("大象", mode="rb")
# while 1:
# try:
# obj = pickle.load(f)
# obj.tiaoxi()
# except Exception:
# break# e1 = Elephant("寶寶", "185T", "175")
# e2 = Elephant("寶貝", "120T", "120")
# lst = [e1, e2]
# pickle.dump(lst, open("大象", mode="wb"))# 讀
# lst = pickle.load(open("大象", mode="rb"))
# for dx in lst:
# dx.tiaoxi()