【发布时间】:2016-05-21 13:47:33
【问题描述】:
我正在运行 python 2.7、3.4 和 3.5。只有 2.7 使用以下代码引发 TypeError。我想知道我是否做错了什么,这是一个已知的错误还是其他什么?
from abc import ABCMeta, abstractmethod
class Base(object):
__metaclass__ = ABCMeta
@abstractmethod
def bar(self):
pass
class Concrete(Base):
pass
confused = Concrete()
在 Python 2.7 中,我收到以下(有用的)错误:
Traceback (most recent call last):
File "confused.py", line 16, in <module>
confused = Concrete()
TypeError: Can't instantiate abstract class Concrete with abstract methods bar
但在 Python3.x 中它运行时没有错误(坏)。谢谢。
【问题讨论】:
标签: python-2.7 python-3.x exception abstract-class