• pytho 单例模式


    单例模式存在的目的是保证当前内存中仅存在单个实例,避免内存浪费!!!

    (程序如果并发量大的话,内存里就会存在非常多功能上一模一样的对象。存在这些对象肯定会消耗内存,对于这些功能相同的对象可以在内存中仅创建一个,需要时都去调用)

    # 单例模式
     
    class Foo:
     
        __n = None
     
        def __init__(self):
            self.name = "nick"
            self.age = 18
            self.job = "pythoner"
     
        @staticmethod
        def dl():
            if Foo.__n:
                return Foo.__n
            else:
                Foo.__n = Foo()
                return Foo.__n
     
     
    # 创建对象时不能再直接使用:obj = Foo(),而应该调用特殊的方法:obj = Foo.dl() 。
     
    f1 = Foo.dl()
    print(f1)
    f2 =Foo.dl()
    print(f2)
    f3 =Foo.dl()
    print(f3)
     
    # 运行结果
    <__main__.Foo object at 0x0000000001142390>
    <__main__.Foo object at 0x0000000001142390>
    <__main__.Foo object at 0x0000000001142390>
    def singleton(argv):
        dic = {}
     
        def s(*args, **kwargs):
     
            if argv not in dic:
                dic[argv] = argv(*args, **kwargs)
                return dic[argv]
            else:
                return dic[argv]
     
        return s
     
     
    # 类上加单例装饰器
    @singleton
    class Foo:
        pass
     
    @singleton
    class Foo2:
        pass
  • 相关阅读:
    class 关键字
    自适应Web主页
    前端跨域解决
    HTML5新增特性
    HTTP知识点【总结篇】
    针对Web应用的【攻击模式篇】
    HTTPS和HTTP
    HTTP状态码之【整理篇】
    SpringCloud配制eureka
    maven连接国内仓库
  • 原文地址:https://www.cnblogs.com/lanyinhao/p/9197550.html
Copyright © 2020-2023  润新知