"""
单例对__init__的调用也是多次的，除非像下面这么写
"""
class Singleton():
    _instance = None  # 类变量
    init_flag = False

    def __new__(cls, *args, **kw):
        if not cls._instance:
            cls._instance = super(Singleton, cls).__new__(cls, *args, **kw)  # 将类的实例和一个类变量 _instance 关联起来
        return cls._instance

    def __init__(self):
        if Singleton.init_flag:
            return
        print("好开心")
        Singleton.init_flag = True

    def deal(self):
        print("揍了刘言")


if __name__ == '__main__':
    for i in range(10):
        bean = Singleton()
        bean.deal()
        bean2 = Singleton()
        bean2.deal()
