zoukankan      html  css  js  c++  java
  • 突然想写一个Python的单例

    单例模式

    单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例
    
    注意:
    
    1、单例类只能有一个实例。
    2、单例类必须自己创建自己的唯一实例。
    3、单例类必须给所有其他对象提供这一实例。

    我写的当然是python了:

    元类:

    这里我们其实还需要真的元类是怎么回事:http://python.jobbole.com/88795/  这个篇文章写的是真的不错

    学懂元类,你只需要知道两句话:

    • 道生一,一生二,二生三,三生万物
    • 我是谁?我从哪来里?我要到哪里去?

    这个网站介绍的元类真的不错

    第一种(也是最简单的一种):

    class SingLeton(object):
        _instance = None
        def __new__(cls, *args, **kwargs):
            if not cls._instance:
                cls._instance = super(SingLeton,cls).__new__(cls, *args, **kwargs)
            return cls._instance 

    第二种,也是python中独有的的一种(先要明白python中的模块和包)

    在一个py文件中,实例化一个对象,而其他文件导入这个实例对象时候 ,它就是一个单例

    问题来了----为什么呢?

    因为python中中,文件只导入一次,再次导入时候还是最初py文件中的实例对象

  • 相关阅读:
    poj 3264 Balanced Lineup
    poj 2762 Going from u to v or from v to u?
    hdu 3671 Boonie and Clyde
    zoj 3195 Design the city
    poj 1523 SPF
    Codeforces Polo the Penguin and Matrix
    MVC原理的简述(转)
    C#访问权限修饰符
    XML Schema介绍
    Sql批量删除/插入
  • 原文地址:https://www.cnblogs.com/Zhao--C/p/10191590.html
Copyright © 2011-2022 走看看