學習python,從入門到放棄(29)
阿新 • • 發佈:2022-04-12
學習python,從入門到放棄(29)
設計模式
在IT行業中設計模式總共有23種,大致可以分為三大類分別是建立型、結構型和行為型。
設計模式是經過反覆驗證用於解決固定問題的固定套路。
-
設計模式之單例模式
單例模式的意思是一個類只能產生一個物件,用於節省資源,比如有一個類中有很多繫結給物件的方法,我們需要在很多地方使用它,那麼不同的程式設計師來用不知道有沒有產生物件,所以自己會建立一個新物件,如此往復則會造成資源的浪費。
所以我們需要在類例項化物件的時候進行干涉 >>>: 元類
單例模式:(可以有很多種編寫方式)
class Single(type): new_obj = None def __call__(self, *args, **kwargs): if not self.new_obj: obj = super().__call__(*args, **kwargs) self.new_obj = obj return self.new_obj return self.new_obj class MyClass(metaclass=Single): def __init__(self, name): self.name = name obj1 = MyClass('jason') obj2 = MyClass('tony') print(id(obj1), id(obj2)) print(obj1.__dict__, obj2.__dict__)
pickle 模組
並且該模組只支援 python,相容性很差。
大致用於,將物件儲存到檔案,並且取出來之後還可以使用物件的功能。
import pickle class MyClass(object): school = 'school' def __init__(self, name): self.name = name def choose_course(self): print('%s正在選課' % self.name) obj = MyClass('jason') print(obj.school) obj.choose_course() # pickle可以 with open(r'%s' % obj.name, 'wb') as f: pickle.dump(obj, f) with open(r'jason', 'rb') as f: data = pickle.load(f) print(data) print(data.name) print(data.school)