我有两个类从同一个父类继承P
:
from abc import ABCMeta, abstractmethod
class P(object):
__metaclass__ = ABCMeta
@abstractmethod
def foo(self):
pass
class C(P):
pass
class D(tuple, P):
pass
唯一的区别是D
继承自tuple
和P
while仅C
继承自P
。
现在这是行为:c = C()
出现错误,如预期的那样:
TypeError: Can't instantiate abstract class C with abstract methods foo
但d = D()
工作没有错误!
我什至可以打电话d.foo()
。我该如何解释这种行为?