欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 的單利模式

錢艷冰2年前7瀏覽0評論

單例模式是一種常用的設計模式,Python 語言也提供了簡單易用的方法來實現單例模式。在 Python 中,單例模式可以通過使用 __new__ 方法來實現。

class Singleton:
__instance = None  # 用于存放單例實例
def __new__(cls):
if cls.__instance is None:
cls.__instance = object.__new__(cls)
return cls.__instance
# 創建實例
s1 = Singleton()
s2 = Singleton()
# 判斷實例是否相等
print(s1 is s2)  # 輸出 True

在上述代碼中,實現了一個 Singleton 類,并重寫了 __new__ 方法。在 __new__ 方法中,首先判斷存放單例實例的 __instance 是否為 None。如果是,則調用父類 object 的 __new__ 方法創建該實例;如果不是,則直接返回 __instance。這樣就可以保證每次創建實例時只會創建一個實例。

為了方便使用,也可以將 Singleton 類設計為一個裝飾器。

def singleton(cls):
instances = {}
def wrapper():
if cls not in instances:
instances[cls] = cls()
return instances[cls]
return wrapper
@singleton
class MyClass:
pass
# 創建實例
s1 = MyClass()
s2 = MyClass()
# 判斷實例是否相等
print(s1 is s2)  # 輸出 True

在這種情況下,當使用 MyClass 類時,會自動調用 singleton 函數,返回一個 wrapper 函數,并將其賦值給 MyClass 類。當創建 MyClass 的實例時,就會調用 wrapper 函數,判斷實例是否已經存在,如果存在就直接返回,如果不存在就創建并返回。這樣就完成了單例模式的實現。