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__
Почему это?