像下面的代码:
class Test(object):
__instance = None
def __new__(cls, *args, **kwargs):
if cls.__instance:
return cls.__instance
else:
return object.__new__(cls)
def __init__(self, value):
self.value = value
print('__init__')
Singletone.__instance = self
sl = Test(100)
sl2 = Test(300)
print(sl.value)
print(sl2.value)
我猜测的输出是:
__init__
100
100
然而实际输出是:
__init__
__init__
300
300
为什么呢 ?
梦里花落0921
相关分类