python2.7:是否可以确定__init__是从子类调用还是只是正常调用?

问题描述 投票:0回答:1

我有两节课

class A()

class B(A)

有时A类通常被实例化,有时候通过B类进行实例化

super(B, self).__init__()

是否有可能确定A类的init方法是从B调用还是从外部调用?

python class subclass super
1个回答
0
投票

你可以比较type(self)A

class A(object):

    def __init__(self):
        if type(self) == A:
            print('From A')

        else:
            print('From elsewhere')

class B(A):
    pass

A()
B()

输出:

From A
From elsewhere

这是你想要type而不是isinstance的唯一一次,尽管我不确定你为什么要这样做。

© www.soinside.com 2019 - 2024. All rights reserved.