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

相关推荐
yaoxin52112311 分钟前
503. Java 反射 - 编写 ServiceFactory 类
java·开发语言·python
浪兎兎19 分钟前
Docker 容器技术笔记
笔记·docker·容器
LuminousCPP29 分钟前
数据结构‑二叉树(二):二叉堆从零实现|Heap结构设计 + 建堆优化 + 堆排序深度解析
c语言·数据结构·笔记·二叉树
噜~噜~噜~39 分钟前
操作系统笔记-2.2.6 多处理机调度
笔记·操作系统
kyrie_sakura1 小时前
python学习笔记3 -- 流程控制语句结构
笔记·python·学习
冬夜戏雪1 小时前
agent的trace 和eval
开发语言·前端·javascript
程序员小八7771 小时前
Java 快速转 Go
java·python·golang
梦想的旅途22 小时前
Python实现企业微信文本消息发送
开发语言·python·企业微信
感谢一路走过的人2 小时前
AGGrid刷新数据后执行筛选
javascript·ag-grid