Python 笔记之单例

复制代码
#单例模式:只产生一次地址
#开发模式:单例模式
复制代码
class singleleton:
    #私有化当前实例(对于内存的优化,保持地址)
    #单例的地址就存在于__instance中
    __instance=None
    name='jack'
    #重写__new__
    def __new__(cls):
        print('__new__')
        if cls.__instance is None:
            print('是空')
            cls.__instance=object.__new__(cls)
            print(cls.__instance)
            return cls.__instance
        else:
            print('不是空')
            return cls.__instance
    def show(self,n):
        print('--->show {0} is {1}'.format(self.name,n))
print(dir(singleleton))#查看类中所有的attribute
s=singleleton()
s1=singleleton()
print(s)
print(s1)
s.show(5)
s1.show(7)

输出:

'__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_singleleton__instance', 'name', 'show'

new

是空

<main.singleleton object at 0x000001D38C2F7130>

new

不是空

<main.singleleton object at 0x000001D38C2F7130>

<main.singleleton object at 0x000001D38C2F7130>

--->show jack is 5

--->show jack is 7

相关推荐
大鹏说大话1 分钟前
Java 并发基石:CAS 原理深度解析与 ABA 问题终极解决方案
开发语言·python
2301_793804691 分钟前
Python单元测试(unittest)实战指南
jvm·数据库·python
甜辣uu2 分钟前
城市车辆和行人目标检测系统
python
进击的雷神5 分钟前
分页参数推导、嵌套数据提取、多语言地址判断、去重插入检查——韩国Koplas展爬虫四大技术难关攻克纪实
爬虫·python
☆56610 分钟前
机器学习与人工智能
jvm·数据库·python
猹叉叉(学习版)13 分钟前
【系统分析师_知识点整理】 6.企业信息化
笔记·软考·企业信息化·系统分析师
酉鬼女又兒14 分钟前
零基础快速入门前端DOM 元素获取方法详解:从代码到实践(可用于备赛蓝桥杯Web应用开发)
前端·javascript·职场和发展·蓝桥杯·js
bjxiaxueliang15 分钟前
一文掌握Python aiohttp:异步Web开发从入门到部署
开发语言·前端·python
belldeep22 分钟前
python:Scapy 网络数据包操作库
网络·python·抓包·scapy
吴声子夜歌22 分钟前
JavaScript——JSON序列化和反序列化
开发语言·javascript·json