128 votes

Génériques/modèles en python ?

Comment python gère-t-il les scénarios de type générique/modèle ? Disons que je veux créer un fichier externe "BinaryTree.py" et qu'il gère les arbres binaires, mais pour tout type de données.

Je pourrais donc lui passer le type d'un objet personnalisé et avoir un arbre binaire de cet objet. Comment cela se fait en python ?

22voto

8bitjoey Points 431

En fait, vous pouvez maintenant utiliser des génériques dans Python 3.5+. Voir PEP-484 et la documentation du module de saisie .

Selon ma pratique, ce n'est pas très transparent et clair, surtout pour ceux qui sont familiers avec Java Generics, mais toujours utilisable.

3voto

Andrea Faulds Points 2041

Parce que Python est typé dynamiquement, les types des objets n'ont pas d'importance dans de nombreux cas. C'est une meilleure idée d'accepter n'importe quoi.

Pour démontrer ce que je veux dire, cette classe d'arbre accepte n'importe quoi pour ses deux branches :

 class BinaryTree:
    def __init__(self, left, right):
        self.left, self.right = left, right

Et il pourrait être utilisé comme ceci :

 branch1 = BinaryTree(1,2)
myitem = MyClass()
branch2 = BinaryTree(myitem, None)
tree = BinaryTree(branch1, branch2)

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