码迷,mamicode.com
首页 > 编程语言 > 详细

python中对单例模式的理解

时间:2018-07-09 22:03:49      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:span   self   process   python   实例   理解   proc   foo   style   

class Foo(object):
    instance = None

    def __init__(self):
        pass
    def process(self):
        return 1234565

    @classmethod   #版本1单例模式
    def get_instance(cls):
        if  Foo.instance:
            return Foo.instance
        else:
            Foo.instance = Foo()
            return Foo.instance


obj1 = Foo()
print(obj1.process())

obj2 = Foo()
print(obj2.process())
obj1不相等obj2  id(obj1)

obj1 = Foo.get_instance()
obj2 = Foo.get_instance()
此时的obj1=obj2


class Foo(object):
    instance = None

    def __init__(self):
        self.name = alex

    def __new__(cls, *args, **kwargs):
        if Foo.instance:
            return Foo.instance
        else:
            obj = object.__new__(cls, *args, **kwargs) #创建对象的本质是new  new先执行
            return return obj

obj1 = Foo()
obj2 = Foo()
print(id(obj1), id(obj2))  obj1=obj2  单例模式2 高级版  永远用一个对象的实例!

创建的对象内部封装的值是一样的 就搞成单例模式

 

python中对单例模式的理解

标签:span   self   process   python   实例   理解   proc   foo   style   

原文地址:https://www.cnblogs.com/Liang-jc/p/9286287.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!