我有两节课
class A()
class B(A)
有时A类通常被实例化,有时候通过B类进行实例化
super(B, self).__init__()
是否有可能确定A类的init方法是从B调用还是从外部调用?
你可以比较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
的唯一一次,尽管我不确定你为什么要这样做。