网站做多久能盈利怎样用自己电脑做网站
网站做多久能盈利,怎样用自己电脑做网站,定制企业网站有哪些,尚品网站建设单例模式是一个经典设计模式#xff0c;简要的说#xff0c;一个类的单例模式就是它只能被实例化一次#xff0c;实例变量在第一次实例化时就已经固定。
在Python中常见的单例模式有None#xff0c;这就是一个很典型的设计#xff0c;通常使用 if xxx is None或者if xxx …单例模式是一个经典设计模式简要的说一个类的单例模式就是它只能被实例化一次实例变量在第一次实例化时就已经固定。
在Python中常见的单例模式有None这就是一个很典型的设计通常使用 if xxx is None或者if xxx is not None来比较运算。 Python实现单例模式
代码如下 class MyClass:_instance None _first_init False def __new__(cls, *args, **kwargs):if not cls._instance:cls._instance super().__new__(cls)return cls._instancedef __init__(self, var1, var2):cls type(self)if not cls._first_init:self.var1 var1self.var2 var2cls._first_init True 如上所示我创建了一个MyClass的类定义了两个类变量第一个是_instance它负责保存该类创建的实例。第二个是_first_init它是一个布尔值保存是否为第一次实例化该类。
在__new__方法中构造函数判断是否存在_instance这个类变量如果之前已经实例化了直接返回。如果是第一次实例化就会为_instance类变量绑定实例使用super().__new__(cls)创建实例即调用父类object.__new__(MyClass)创建实例。
在__init__方法中初始化函数我们通过clstype(self)获取MyClass类判断是否第一次实例化。如果是第一次实例化就绑定实例变量。否则什么都不做。
运行效果
我们创建两个实例来对比 instance1 MyClass(1, 2)instance2 MyClass(7, 5)id(instance1) id(instance2)
Trueinstance2.var1
1 可以看到这两个实例的内存地址都相同而且第一次实例化后变量已经固定了全局不会再改变。
这就是单例模式的实现。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89220.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!