1. 程式人生 > >python單列設計模式總結

python單列設計模式總結

主要作用:如建立音樂播放器 物件,回收站 物件,印表機 物件,在系統中只有一個唯一的例項

就是不管建立多少次同一個物件,他們的地址永遠都是一樣的。

主要使用:__new__方法(分配空間的)

  • 使用類名()建立物件時,python的直譯器會 首先 呼叫 __new__方法為物件 分配空間
  • __new__是一個由 object 基類提供的 內建的靜態方法,主要作用有兩個:

         1. 在記憶體中為物件 分配空間

         2.返回 物件的引用

  • python的直譯器獲得物件的 引用 後,將引用作為 第一個引數
    傳遞給 __init__方法

重寫 __new__方法的程式碼非常固定!

  • 重寫__new__方法 一定要 return super().__new__(cls)
  • 否則Python的直譯器 得不到 分配了空間的 物件引用,就不會呼叫物件的初始化方法
  • 注意:__new__是一個靜態方法,在呼叫時需要 主動傳遞cls 引數

列1:初始化__init__被執行了兩次

列2:讓初始化__init__只被執行一次