Usually an abstract class cannot be instantiated:
>>> from abc import ABCMeta, abstractmethod
>>> from fractions import Fraction
>>> class A(Fraction, metaclass=ABCMeta):
@abstractmethod
def frobnicate(self): pass
>>> A()
Traceback (most recent call last):
File "<pyshell#287>", line 1, in <module>
A()
File "C:\Program Files\Python39-32\lib\fractions.py", line 93, in __new__
self = super(Fraction, cls).__new__(cls)
TypeError: Can't instantiate abstract class A with abstract method
frobnicate
However, if I derive from a builtin class that mechanism doesn't work:
>>> class A(int, metaclass=ABCMeta):
@abstractmethod
def frobnicate(self): pass
>>> A()
0
Is this a bug, or an implementation accident, or the expected behavior?
--
https://mail.python.org/mailman/listinfo/python-list