Maison > Article > développement back-end > Analyse des méthodes d'implémentation des types intégrés étendus Python
Cet article présente principalement la méthode d'extension des types intégrés en Python. Il analyse les techniques d'implémentation spécifiques de l'expansion des types intégrés intégrés et de l'expansion des sous-classes en Python sur la base d'exemples. Les amis dans le besoin peuvent se référer à cet article
L'exemple décrit comment Python implémente l'extension des types intégrés. Partagez-le avec tout le monde pour votre référence, comme suit :Introduction
En plus d'implémenter de nouveaux types de méthodes objet, nous pouvons parfois également utilisez les types intégrés Extend Python pour prendre en charge d'autres types de structures de données, tels que l'ajout de méthodes d'insertion et de suppression de file d'attente aux listes. En réponse à ce problème, cet article présente deux méthodes pour étendre les types intégrés de Python en combinant des exemples d'implémentation de fonctions de collection : étendre les types en incorporant des types intégrés et étendre les types par sous-classement.Étendu en incorporant des types intégrés
L'exemple suivant implémente un objet de collection en utilisant l'objet liste comme type intégré et ajoute une certaine surcharge des opérateurs. Cette classe encapsule les listes de Python, ainsi que les opérations d'ensemble supplémentaires.class Set: def __init__(self, value=[]): # Constructor self.data = [] # Manages a list self.concat(value) def intersect(self, other): # other is any sequence res = [] # self is the subject for x in self.data: if x in other: # Pick common items res.append(x) return Set(res) # Return a new Set def union(self, other): # other is any sequence res = self.data[:] # Copy of my list for x in other: # Add items in other if not x in res: res.append(x) return Set(res) def concat(self, value): # value: list, Set... for x in value: # Removes duplicates if not x in self.data: self.data.append(x) def __len__(self): return len(self.data) # len(self) def __getitem__(self, key): return self.data[key] # self[i] def __and__(self, other): return self.intersect(other) # self & other def __or__(self, other): return self.union(other) # self | other def __repr__(self): return 'Set:' + repr(self.data) # print() if __name__ == '__main__': x = Set([1, 3, 5, 7]) print(x.union(Set([1, 4, 7]))) # prints Set:[1, 3, 5, 7, 4] print(x | Set([1, 4, 6])) # prints Set:[1, 3, 5, 7, 4, 6]
Extendre les types en sous-classant
À partir de Python 2.2, tous les types intégrés peut être directement sous-classé, comme list, str, dict et tuple. Cela vous permet de personnaliser ou d'étendre les types intégrés via des instructions de classe définies par l'utilisateur : sous-classez le nom du type et personnalisez-le. Les instances de sous-type d'un type peuvent être utilisées partout où le type intégré d'origine peut apparaître.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!