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)

    四、使用元类

    待补充,研究中

  • 相关阅读:
    项目开发目录
    语法 部分
    time模块
    文件 部分
    二分法
    函数 部分
    递归
    模块 部分
    稀疏数组
    Java中使用foreach遍历数组
  • 原文地址:https://www.cnblogs.com/linshuhui/p/9579521.html
Copyright © 2011-2022 走看看