小编use*_*147的帖子

python单例类可以被继承吗?

我的想法是任何一个对象都应该存在于 Singleton 类的所有子类中。我一直在尝试的代码和结果矩阵如下所示。在子类的情况下,矩阵似乎工作得很好。我是不是走错路了?它是否了解父类对象和子类对象的情况会发生什么?

class Singleton(object):
    _instance = None
    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super(Singleton, cls).__new__(
                                cls, *args, **kwargs)
        return cls._instance

class A(Singleton):
    def __new__(cls, *args, **kwargs):
        super(A, cls).__new__(cls, *args, **kwargs)

class B(Singleton):
    def __new__(cls, *args, **kwargs):
        super(B, cls).__new__(cls, *args, **kwargs)

class C(B):
    def __new__(cls, *args, **kwargs):
        super(B, cls).__new__(cls, *args, **kwargs)


if __name__ == '__main__':
    s1=Singleton()
    s2=Singleton()
    if(id(s1)==id(s2)):
        print "Same"
    else:
        print "Different"

'''
I got a result matrix for s1 and s2
           |************ s2 **************************|           
s1 …
Run Code Online (Sandbox Code Playgroud)

python inheritance singleton

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

inheritance ×1

python ×1

singleton ×1