Maison >développement back-end >Tutoriel Python >Comment pouvez-vous ajouter des fonctionnalités personnalisées aux types d'objets intégrés de Python ?
Manipulation des types d'objets Python intégrés
Les types d'objets intégrés de Python, tels que les dictionnaires, les chaînes et les listes, sont immuables et manquent de certaines méthodes qui pourraient être souhaitées. Bien qu'il ne soit pas possible de modifier directement ces objets, il existe une technique qui permet de leur ajouter des fonctionnalités personnalisées.
Sous-classement et substitution
Pour ajouter une méthode à un type intégré, vous pouvez le sous-classer et remplacer votre sous-classe par le type d'origine dans l'espace de noms intégré. De cette façon, toutes les instances du type intégré hériteront de vos fonctionnalités ajoutées.
Exemple : Ajout d'une méthode helloWorld() aux dictionnaires
L'héritage du prototype de JavaScript vous permet pour ajouter des méthodes aux types intégrés, mais Python n'a pas de mécanisme similaire. Cependant, en utilisant la sous-classe, vous pouvez obtenir un effet similaire :
<code class="python">class CustomDict(dict): def helloWorld(self): print("Hello, dictionary!")</code>
En remplaçant cette sous-classe par le dict intégré dans l'espace de noms global, vous pouvez désormais ajouter la méthode helloWorld() à n'importe quel objet de dictionnaire :
<code class="python">import __builtin__ __builtin__.dict = CustomDict my_dict = {} my_dict.helloWorld() # Output: Hello, dictionary!</code>
Limitations
Cette technique a des limites :
Conclusion
Bien que vous ne puissiez pas ajouter directement de méthodes aux types d'objets intégrés de Python, le sous-classement et la substitution fournissent un moyen d'obtenir des fonctionnalités similaires. En étendant les classes intégrées, vous pouvez ajouter des attributs et des comportements supplémentaires à ces objets tout en conservant la compatibilité avec le code existant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!