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

相关推荐
赵玄月9 分钟前
网络工程实验三:DHCP的配置
网络·经验分享·笔记·智能路由器
a computer's friend15 分钟前
服务器jupyter lab 设置:密码+远程访问
python·jupyter
思忖小下19 分钟前
Python基础学习-09文件操作
python·文件
洋葱土豆和香菜23 分钟前
HTML、CSS与JavaScript基础
javascript·css·html
hfhua26 分钟前
2024新版pycharm如何切换anaconda虚拟环境
ide·python·pycharm·anaconda
黑心萝卜三条杠1 小时前
PyTorch 介绍与实战:从数据加载到模型训练与测试
python·深度学习·机器学习
拼才会有未来1 小时前
智谱AI批量文章生成工具:Python + PyCharm从安装到实战
人工智能·python·pycharm·ai自动写文章
想退休的搬砖人1 小时前
ESLint的简单使用(js,ts,vue)
开发语言·javascript·vue.js
乐多_L1 小时前
axios的post请求,数据为什么要用qs处理?什么时候不用?
前端·javascript·vue.js
Stanford_11061 小时前
C++入门基础知识150—【关于C++ 输入/输出运算符重载】
前端·javascript·c++·微信小程序·微信公众平台·twitter·微信开放平台