In Python, versuche ich den eingebauten 'int' Typ zu erweitern. Dabei möchte ich in einigen keywoard Argumente an den Konstruktor übergeben, so dass ich dies tun:Python: extending int und MRO für __init__
class C(int):
def __init__(self, val, **kwargs):
super(C, self).__init__(val)
# Do something with kwargs here...
jedoch während C(3)
Aufruf funktioniert gut, C(3, a=4)
gibt:
'a' is an invalid keyword argument for this function`
und C.__mro__
gibt die erwartete:
(<class '__main__.C'>, <type 'int'>, <type 'object'>)
Aber es scheint, dass Python versucht int.__init__
zuerst zu nennen ... Wer weiß, warum? Ist das ein Fehler im Interpreter?