美文网首页流畅的python
通过模块功能实现单例模式

通过模块功能实现单例模式

作者: 洛克黄瓜 | 来源:发表于2019-03-19 11:13 被阅读0次
  • 一般说到python实现单例模式,都会想到各种装饰器的途径来构造
  • 装饰器途径构造单例模式参考文档:python装饰器
  • 本文则记录了一种比较新颖的方式来实现单例模式

构建一个singleton模块

#singleton.py
class Singleton:
    def __init__(self):
        self.name = "i'm singleton"
instance = Singleton()
del Singleton  # 把构造函数删除

调用上述模块,

import singleton
print(singleton.instance.name)  # i'm singleton
instance = Singleton() # NameError: name 'Singleton' is not defined

小结

  • Python在module中对类的构造函数进行del操作,来隐藏一个类的构造函数,从而实现单例

讨论

  • 这个module实现单例的方法,对构造器来说也是线程安全的哦
  • 突然想到类里的method想做到线程安全怎么搞,下次发个文章研究下

相关文章

  • 通过模块功能实现单例模式

    一般说到python实现单例模式,都会想到各种装饰器的途径来构造 装饰器途径构造单例模式参考文档:python装饰...

  • python面试题-2018.1.30

    问题:如何实现单例模式? 通过new方法来实现单例模式。 变体: 通过装饰器来实现单例模式 通过元类来创建单例模式...

  • 单例模式之枚举类enum

    通过枚举实现单例模式 枚举类实现单例模式的优点 对于饿汉式单例模式和懒汉式单例模式了解的同学,使用以上两种单例模式...

  • Python两种方式实现单例模式

    装饰器模式实现单例 通过拦截类创建的是模式实现单例 测试结果

  • 模块模式

    模块模式 模块 模式实在单例对象上加上扩展,通过作用域链来关联私有变量和特权方法对象字面量封装模块,闭包实现私有和...

  • python单例模式

    python单例模式实现方式 使用模板 python模块是天然的单例模式(.pyc文件的存在) 使用__new__...

  • 第五章 设计模式

    建议50:利用模块实现单例模式 模块采用的其实是天然的单例模式1 所有的变量都会绑定到模块2 模块只初始化一次3 ...

  • C++中线程安全的单例模式(2)

    简介 本文介绍单例模式实现的另外两种方法: 通过double check(借助std::atomic)实现单例模式...

  • python 单例模式

    单例模式 Singleton 网上搜索python 单例模式,实现方式大致有一下几种方式: 以模块导入的方式 使用...

  • 创建对象的几种模式和一个事件管理器实现

    构造函数模式、混合模式、模块模式、工厂模式、单例模式、发布订阅模式的范例 . . . . . 具体实现 Demo[...

网友评论

    本文标题:通过模块功能实现单例模式

    本文链接:https://www.haomeiwen.com/subject/vhawmqtx.html