单例模式(mark)

# 单例模式 控制类只能创建一个实例对象

class Person(object):

    instance = None   # 创建一个值为None的类属性为0

    is_first_run = True    # 如果值为True说明是第一次创建对象,若为False说明不是第一次创建对象

    def __new__(cls, *args, **kwargs):

        if cls.instance == None:

            cls.instance = object.__new__(cls)

            return cls.instance

       
    def __init__(self, name):
        if Person.is_first_run:  # 只有第一次创建对象的时候,才需要执行属性的初始化
            self.name = name
            Person.is_first_run = False

    def set_name(self, new_name):  # 如果要修改单例对象的属性,最好是通过调用方法
        self.name = new_name 

    

猜你喜欢

转载自blog.csdn.net/weixin_42020284/article/details/79998219