【发布时间】:2019-06-22 17:44:23
【问题描述】:
ABC 类的创建是为了检查对象类型,因此它们不能被实例化。事实上:
basestring()
抛出:
TypeError: The basestring type cannot be instantiated
但是,ABC 号码不会发生这种情况:
from numbers import number
number()
它不会抛出任何异常。而来自同一模块的其他 ABC 则这样做:
from numbers import Real
from numbers import Complex
Real() # or Complex()
抛出:
TypeError: Can't instantiate abstract class Real with abstract methods __abs__, __add__, __div__, __eq__, __float__, __floordiv__, __le__, __lt__, __mod__, __mul__, __neg__, __pos__, __pow__, __radd__, __rdiv__, __rfloordiv__, __rmod__, __rmul__, __rpow__, __rtruediv__, __truediv__, __trunc__
这是为什么呢?
【问题讨论】:
标签: python python-2.7 abc isinstance