zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    sql中的Bulk 导入txt文本
    通过SQL自动添加流水号
    JAVA XML格式化输出
    nginx 服务端口权限13的问题
    使用hangfire在xunit中
    自动提交代码
    系统性能测试
    前端性能——速度之书
    node fs相对路径
    yum 初始化国内
  • 原文地址:https://www.cnblogs.com/lanyinhao/p/9197550.html
Copyright © 2011-2022 走看看