En Python, estoy tratando de extender el tipo 'int' incorporado. Al hacerlo quiero pasar en algunos argumentos keywoard al constructor, por lo que hago esto:Python: extensión int y MRO para __init__
class C(int):
def __init__(self, val, **kwargs):
super(C, self).__init__(val)
# Do something with kwargs here...
Sin embargo, mientras que llamando C(3)
funciona bien, C(3, a=4)
da:
'a' is an invalid keyword argument for this function`
y C.__mro__
devuelve la espera:
(<class '__main__.C'>, <type 'int'>, <type 'object'>)
Pero parece que Python está intentando llamar int.__init__
primera ... Alguien sabe por qué? ¿Es esto un error en el intérprete?