1. 程式人生 > >python基礎之單例設計模式

python基礎之單例設計模式

ins code return 設計 flag pla int layer als

class Player():
    instance = None
    init_flag = False

    def __init__(self):

        if self.init_flag is False:
            print("初始化...")
            self.init_flag = True

    def __new__(cls, *args, **kwargs):
        if cls.instance is None:
            cls.instance = super().__new__(cls)
        
return cls.instance if __name__ == __main__: p1 = Player() p2 = Player() p3 = Player() p4 = Player() print(p1) print(p2) print(p3) print(p4)

整體思路,用一個類屬性來記錄是否已經執行過這個函數,如果執行過了,改下類屬性的值,然後判斷這個值來進行單例模式

python基礎之單例設計模式