• day25_python_单例模式_始终只有一个对象


    #Author:'haijing'
    #date:2018/10/28

    # class Foo:
    # def __init__(self,name,age):
    # self.name = name
    # self.age = age
    # obj = Foo('haijing',18) #obj为类Foo的对象,也称obj为Foo类的实例
    # obj1 =Foo('haijing',18)
    # obj2 = Foo('haijing',18) #内存地址开辟了三份


    #单例模式 单个实例 使用同一份实例(对象)
    class Foo:
    __v = None #创建静态字段 可以在类内self.__v做共有属性调用
    @classmethod #创建静态方法get_instance() 可用Foo.get_instance()调用,而不用创建对象
    def get_instance(cls):
    if cls.__v: #__v依旧是是Foo()的对象
    return cls.__v
    else:
    cls.__v = Foo() #执行这一句后,__v就是Foo()的对象
    return cls.__v

    obj1 = Foo.get_instance() #创建obj1对象 obj1为类Foo的对象
    print(obj1) #打印<__main__.Foo object at 0x0000025A990A4390>
    obj2 = Foo.get_instance() #创建obj2对象
    print(obj2) #打印<__main__.Foo object at 0x0000025A990A4390>
    obj2 = Foo.get_instance() #创建obj3对象
    print(obj2) #打印<__main__.Foo object at 0x0000025A990A4390>
    #即obj1、obj2和obj3都是同一个对象









  • 相关阅读:
    腾讯云通信服务端返回签名
    synchronized同步语句块
    synchronized同步方法
    springjdbc的批量操作
    yield方法
    暂停线程
    【jdk源码学习】HashMap
    diamond types are not supported at this language level
    【java基础系列】一、常用命令行
    Socket通信综合示例
  • 原文地址:https://www.cnblogs.com/YiYA-blog/p/9867700.html
Copyright © 2020-2023  润新知