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

相关推荐
2401_840192277 分钟前
如何学习一门计算机技术
开发语言·git·python·devops
巷北夜未央21 分钟前
Python每日一题(14)
开发语言·python·算法
大模型真好玩24 分钟前
理论+代码一文带你深入浅出MCP:人工智能大模型与外部世界交互的革命性突破
人工智能·python·mcp
梅子酱~25 分钟前
Vue 学习随笔系列二十二 —— 表格高度自适应
javascript·vue.js·学习
s_little_monster28 分钟前
【Linux】进程信号的捕捉处理
linux·运维·服务器·经验分享·笔记·学习·学习方法
你的人类朋友29 分钟前
JS严格模式,启动!
javascript·后端·node.js
Carlos_sam38 分钟前
OpenLayers:如何控制Overlay的层级?
前端·javascript
呵呵哒( ̄▽ ̄)"1 小时前
线性代数:同解(1)
python·线性代数·机器学习
RedMery1 小时前
论文阅读笔记:Denoising Diffusion Implicit Models (4)
论文阅读·笔记
SweetCode1 小时前
裴蜀定理:整数解的奥秘
数据结构·python·线性代数·算法·机器学习