前言:
而今看官们对“单例模式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