关于对象空间的删除问题

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

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': ''}

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

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

posted @ 2019-02-16 22:41  善良的大蝌蚪  阅读(142)  评论(0编辑  收藏  举报