龙空技术网

python的单例模式

跟屁猫oneko 509

前言:

而今看官们对“单例模式python”大体比较注重,朋友们都需要剖析一些“单例模式python”的相关知识。那么小编同时在网上搜集了一些对于“单例模式python””的相关资讯,希望你们能喜欢,大家快快来学习一下吧!

#python单例模式class Singleins:    ins = None    init_flag = False    def __new__(cls, *args, **kwargs):        if cls.ins == None:            cls.ins = super().__new__(cls)        return cls.ins    def __init__(self,name):        self.name = name  #第17行:ins1实例初始化的时候,代码执行到这一行 self.name = aa,下一行的print立刻就打印出来了。但是到了22行的时候ins1.name的name值早就被改变了。        print(self.name) #第17行初始化的时候打印当前的值:aa, 第18行初始化的时候打印当前值:bb#下边两行其实都是先调用init函数,因为init函数里边有print,所以打印出来了当时那一时刻的name的值:'aa'和'bb'。ins1 = Singleins('aa')ins2 = Singleins('bb')  #此行执行完之后self.name 等于 'bb'。它会覆盖ins1实例的name的’aa'‘的值,又因为ins1和ins2指向同一个内存地址,所以22/23两行打印的name是同一个值:’bb'#17/18行初始化的时候init函数里边有print,所以打印出来了'aa'和'bb'。#21/22行也有print,此时name值是最后一次初始化的值:bb,所以又打印了两边'bb'。print(ins1.name)print(ins2.name)#所以最后打印结果是: aa bb bb bb

标签: #单例模式python