Python中的单例设计模式【多测师_王sir】

复制代码
#coding=utf-8
"""
===========================
Author:多测师_王sir
Time:2020-10-06 22:49
Wechat:xiaoshubass
website:www.duoceshi.cn
===========================
"""

class MyClass(object):
    __obj = None
    @classmethod
    def __new__(cls, *args, **kwargs):
        if not cls.__obj:
            #如果没有创建对象、就调用父类的new方法创建一个
            cls.__obj = super().__new__(cls)
            return cls.__obj
        else:
            #如果创建了、则把第一次的对象返回
            return cls.__obj

#实例化==》创建对象
m1 = MyClass()
m2 = MyClass()
m3 = MyClass()
print(id(m1))
print(id(m2))
print(id(m3))

运行结果:内存地址都是一样的、说明根据MyClass类创建的对象都是同一个对象。
1549646200784
1549646200784
1549646200784
复制代码

 

posted @   多测师_树哥  阅读(165)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示