3 votes

Sous-classe de int et surcharge de la méthode __init__ - Python

Duplicata possible :
héritage de str ou int

Salut les amis,

J'essaie de sous-classer la classe int sans succès. Voici ma tentative :

class SpecialInt(int):
    def __init__(self, x, base=10, important_text=''):
        int.__init__(self, x, base)
        self.important_text=important_text

Si je fais ce qui suit :

integer = SpecialInt(123, 10, 'rage of the unicorns')

Je reçois cette erreur :

TypeRror: int() takes at most 2 arguments (3 given)

Des idées ? :)

7voto

robert Points 10493

Véase __new__ :

__new__ () est principalement destiné à permettre aux sous-classes de types immuables (comme int, str, ou tuple) de personnaliser la création d'instances. Elle est également souvent surchargée dans les métaclasses personnalisées afin de personnaliser la création des classes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X