猿问

Python 中, __init__ 方法是必然调用的吗?

像下面的代码:

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

为什么呢 ?

三国纷争
浏览 694回答 2
2回答

梦里花落0921

是必然执行的。
随时随地看视频慕课网APP

相关分类

Python
我要回答