In Python, sto cercando di estendere il tipo 'int' incorporato. In questo modo voglio passare in alcuni argomenti keywoard al costruttore, quindi faccio questo:Python: estensione int e MRO per __init__
class C(int):
def __init__(self, val, **kwargs):
super(C, self).__init__(val)
# Do something with kwargs here...
Tuttavia durante la chiamata C(3)
funziona bene, C(3, a=4)
dà:
'a' is an invalid keyword argument for this function`
e C.__mro__
restituisce l'atteso:
(<class '__main__.C'>, <type 'int'>, <type 'object'>)
Ma sembra che Python sta tentando di chiamare int.__init__
prima ... Qualcuno sa perché? È un bug nell'interprete?