en python, j'essaie d'étendre le type "INT" intégré. Ce faisant, je veux transmettre des arguments keywoard sur le constructeur, donc je le fais: Cependant, tout en appelant et mais il semble que Python essaie d'appeler c (3) code> fonctionne bien,
C (3, A = 4) Code> donne: p>
c .__ MRO __ code> retourne le prévu: p> < Pré> xxx pré>
int .__ init __ code> Premier ... Quelqu'un sait pourquoi? Est-ce un bug dans l'interprète? P> p>
3 Réponses :
vous devriez être remplacé
"__ nouveau __" code>, pas
"__ init __" code> car les INT sont immuables. P>
Les Docs pour le modèle de données Python Conseiller à l'aide de objet. nouveau fort> (CLS [ ...]) P> nouveau strong> () est principalement destiné à permettre aux sous-classes des types immuables (comme INT, STR ou TUPLE) de personnaliser la création d'instances. Il est également communément remplacé dans des métaclasses personnalisées afin de personnaliser la création de classe. P>
blockQuote> Quelque chose comme ça devrait le faire pour l'exemple que vous avez donné: p> __ nouveau __ code>:
Qu'est-ce que tout le monde (jusqu'à présent) dit. INT sont immuables, vous devez donc utiliser nouveau fort> p>
Voir aussi (les réponses acceptées à): p>