Message243540
If a subclass has abstract methods, it fails to instantiate... unless it's a metaclass, and then it succeeds.
>>> import abc
>>> class A(metaclass=abc.ABCMeta):
... @abc.abstractmethod
... def foo(self): pass
...
>>> class B(A): pass
...
>>> B()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't instantiate abstract class B with abstract methods foo
>>> class C(A, type): pass
...
>>> class c(metaclass=C): pass
...
>>> C('', (), {})
<class '__main__.'>
>>> |
|
Date |
User |
Action |
Args |
2015-05-18 21:48:56 | Devin Jeanpierre | set | recipients:
+ Devin Jeanpierre |
2015-05-18 21:48:56 | Devin Jeanpierre | set | messageid: <1431985736.79.0.831498694265.issue24235@psf.upfronthosting.co.za> |
2015-05-18 21:48:56 | Devin Jeanpierre | link | issue24235 messages |
2015-05-18 21:48:56 | Devin Jeanpierre | create | |
|