zoukankan      html  css  js  c++  java
  • python实现单例模式总结

    一、什么是单例模式

    单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。
    当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。

    二、用类装饰器实现单例模式

    def single_deractor(cls):
        __instance = {}
        def inner(*args,**kwargs):
            if cls not in __instance:
                __instance[cls] = cls(*args,**kwargs)
            return __instance[cls]
        return inner
    @single_deractor
    class Foo:
        def __init__(self,name):
            self.name = name
    f1 = Foo('zs')
    f2 = Foo('ls')
    print(f1.name,f2.name)
    print(f1 is f2)

    三、使用__new__

    class Foo:
        __instance = None
        def __init__(self,name,age):
            self.name = name
            self.age = age
        def __new__(cls, *args, **kwargs):
            if not cls.__instance:
                cls.__instance = object.__new__(cls)
            return cls.__instance
    f1 = Foo('zs',12)
    f2 = Foo('ls',13)
    print(f1.name,f2.name)
    print(f1 is f2)

    四、使用元类

    待补充,研究中

  • 相关阅读:
    突破
    leetcode刷题 538~
    leetcode刷题 519~
    Docker练习之镜像更新方法1
    十二 Linux之tar解压缩
    十一 Linux软件包管理yum
    十 Linux指令之grep
    九 linux指令之find
    八 Linux ps指令查看进程和kill杀进程
    七 Linux top命令
  • 原文地址:https://www.cnblogs.com/linshuhui/p/9579521.html
Copyright © 2011-2022 走看看