python基础之单例设计模式

class Player():
    instance = None
    init_flag = False

    def __init__(self):

        if self.init_flag is False:
            print("初始化...")
            self.init_flag = True

    def __new__(cls, *args, **kwargs):
        if cls.instance is None:
            cls.instance = super().__new__(cls)
        return cls.instance

if __name__ == ‘__main__‘:
    p1 = Player()
    p2 = Player()
    p3 = Player()
    p4 = Player()
    print(p1)
    print(p2)
    print(p3)
    print(p4)

整体思路,用一个类属性来记录是否已经执行过这个函数,如果执行过了,改下类属性的值,然后判断这个值来进行单例模式

原文地址:https://www.cnblogs.com/blog-rui/p/9933410.html

时间: 2024-10-28 18:33:30

python基础之单例设计模式的相关文章

JAVA_SE基础——37.单例设计模式

本文继续介绍23种设计模式系列之单例模式. 我们在javaSE的基础学习中,会讲到:单例设计模式.模板设计模式.装饰者设计模式.观察者设计模式.工厂设计模式 我以后随着水平的提高,我会专门开个分类写设计模式的.现在请原谅我的知识面有限-- 设计模式→中的    "模式" 二字是什么意思.. 模式:模式就是解决 一类 问题的固定步骤 . 模式的概念最早起源于建筑行业.... 建房子的步骤都是一样子: 打地基-----> 浇柱子------->盖楼面--------->砌

python中的单例设计模式

单例 -- 让 类 创建的对象,在系统中 只有 唯一的一个实例 定义一个 类属性,初始值是 None,用于记录 单例对象的引用 重写 __new__ 方法 如果 类属性 is None,调用父类方法分配空间,并在类属性中记录结果 返回 类属性 中记录的 对象引用 下面直接上代码 运行结果 原文地址:https://www.cnblogs.com/jj-jump/p/9057929.html

python学习【第十篇】单例设计模式

单例设计模式 目的:让类创建对象,在系统中只有唯一的实例,让每一次创建的对象返回的内存地址都是相同的. __new__方法 使用类名创建对象时,python解释器首先会调用__new__方法为对象分配空间 __new__方法是有object基类提供的静态方法,主要作用有两个: 为内存中的对象分配空间 返回对象的引用,python解释器获得引用后会作为第一个参数返回给__init__方法 python中的单例: __new__方法只创建一次空间,返回一次引用 __init___方法只初始化一次 所

Python——单例设计模式

单例设计模式: 让类创建的对象,在系统中只有唯一的实例, 使用python类内置的__new__()方法实现,__new__()方法在创建对象时会被自动调用,通过重写__new__()方法,使得无论用类型创建多少个对象,内存中都只创建一个对象的实例,此时__new__()方法必须返回此内置函数的调用,及return super().__new__(cls) class MyClass(): # 类属性,记录第一个被创建对象的引用 instance = None def __new__(cls,

黑马程序员--Java基础学习笔记【单例设计模式、网络编程、反射】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 设计模式分类: 创建模式:是对类的实例化过程的抽象化,又分为类创建模式和对象创建模式 类创建模式:工厂方法模式 对象-:简单工厂(静态工厂方法)模式.抽象工厂模式.单例模式.建造模式- 结构模式:描述如何将类或者对象结合在一起形成更大的结构 适配器模式.缺省模式.合成模式.装饰模式(包装模式).门面模式- 行为模式:对不同的对象之间划分责任和算法的抽象化 不变模式.策略模式.迭代子模式.命令模

Java基础小常识- 单例设计模式,-(9)

一.单例设计模式 1.定义:就是可以保证一个类在内存中的对象唯一性,单例设计模式有两种方式,一种饿汉式(实际开发中用),一种懒汉式(面试中用) 必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性. 2.如何保证对象唯一性 1)不允许其他程序用new创建该类对象 2)在该类创建一个对象实例 3)对外提供一个方法让其他程序可以过去该对象 3.实现步骤 1)私有化该类构造函数 2)通过new在本类中创建一个本类对象 3)定义一个公有的方法,将创建的对象返回 4.实例演示 //饿汉式,类

IOS开发之单例设计模式

本文将从四个方面对IOS开发中的单例设计模式进行讲解: 一.什么是单例设计模式 二.我们为什么要用单例设计模式 三.单例设计模式的基本用法 四.自定义单例设计模式代码的封装 一.什么是单例设计模式 所谓单例,即是单个的实例化对象,保证一个类有且仅有一个实例.通常情况下,当我们对一个类实例化时(如:alloc.new等),并不能保证每次实例化的对象是唯一的实例.那么为了保证该类可在多次实例化的过程中保证内存地址不变,就需要引入单例设计模式. 二.我们为什么要用单例设计模式 1.Singleton

设计模式总纲——单例设计模式

前两天写了设计模式总纲,今天就来讲讲我们在工程代码中最最最常用的设计模式了——单例设计模式,这个模式在工程代码上的出现率几乎为99.99999%,但是虽然很常用,但是用的好的人却不多,今天我们就来深入的说一说单例设计模式. 在学习一项新的知识之前,我们都要向自己提出三个问题,为什么要用这个知识,这个知识用在哪里,这个知识怎么用?既 why,where,how,3W模式,我们先来谈谈为什么需要单例设计模式,先来想想,如果一个工具类,比如一个读取配置文件的工具类,这类工具只是特定的功能类,既读取指定

Java设计模式之一 单例设计模式

1.什么叫设计模式: 设计模式的概念首先来源于其它行业:建筑业,在早起建房子的时候,肯定是经验缺乏.显得杂乱无序的,这就会造成很多问题,在行业发展过程,通过不断的经验积累,前辈们针对这些问题提出了合理解决方案,这就是设计模式,参照设计模式往往可以解决很多问题,在计算机编程方面,也会出现类似问题,所以牛人们把这些解决问题的方案进行归类和总结,形成了面向对象编程的23种设计模式. 2.单例模式(特点): Java中单例模式定义:"一个类有且仅有一个实例,并且自行实例化向整个系统提供."通过