zoukankan      html  css  js  c++  java
  • 关于对象空间的删除问题

    今天在类的内部实例化对象的时候,发现一个有趣的事,上代码

    class A:
        a = None
        def __init__(self,name):
            self.name = name
            self.age = ''
        def __new__(cls, *args, **kwargs):
            if not cls.a:
                cls.a = object.__new__(cls)
            return cls.a
    
    
    obj = A(4)
    obj.age = 18
    print(obj.__dict__)
    obj1 = A(3)
    print(obj.__dict__)

    输出结果为

    {'name': 4, 'age': 18}
    {'name': 3, 'age': ''}

    即使单例模式可以是开辟的对象空间地址相同,但是还是无法得到原对象空间中的属性,

    每当对同一个类重新开辟一个对象空间的时候,就会把原对象空间清空,        清空,        清空

  • 相关阅读:
    2016去哪儿编程题:乘坐公交
    lintcode:交错正负数
    lintcode:Ugly Number I
    KMP算法
    适配器模式
    迭代器模式
    命令模式
    外观模式
    工厂方法模式
    代理模式
  • 原文地址:https://www.cnblogs.com/wjw6692353/p/10389602.html
Copyright © 2011-2022 走看看