QUERY · ISSUE
Exception.__init__ raises TypeError if overridden and called by subclass
bugpy-core
>>> class A(Exception):
... def __init__(self):
... Exception.__init__(self)
...
>>> a = A()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in __init__
TypeError: argument should be a 'Exception' not a 'A'
Why is Exception being enforced here, even if A is a subclass of Exception? That makes it hard to subclass from Exception and override __init__.
CANDIDATE · ISSUE
Problems with constructors of subclassed C-level classes
class MyError(Exception):
pass
e = MyError()
e2 = MyError("foobar")
Traceback (most recent call last):
File "exc-sub.py", line 5, in <module>
TypeError: function takes 0 positional arguments but 1 were given
Exception is for 2nd instantiation line. Superclass constructor has following signature: Exception.init(*args).