我有两个类从同一个父类继承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和Pwhile仅C继承自P。
现在这是行为:c = C()出现错误,如预期的那样:
TypeError: Can't instantiate abstract class C with abstract methods foo
但d = D()工作没有错误!
我什至可以打电话d.foo()。我该如何解释这种行为?