‫Alors voici ma solution pour cet exercice dans lequel on devait créer une classe personnalisée pour
‫une liste.
‫La première chose qu'on va faire, et bien c'est tout simplement hériter dans notre classe de l'objet
‫list, ce qui va nous donner accès en fait à toutes les méthodes qui sont disponibles pour les objets
‫de type listes, donc les méthodes append et Extended.
‫Toutes ces méthodes là qui sont disponibles sur les listes, on va y avoir accès dans notre classe personnalisée.
‫La deuxième chose qu'on va faire, c'est dans notre méthode init.
‫Et bien on va passer le paramètre ARG avec l'astérisque, ce qui va nous permettre de passer un nombre
‫indéfini d'arguments à notre classe lorsqu'on va l'instant.
‫Donc c'est ce qu'on fait dans la quand on installe notre classe à la fin du script qu'on dit que ma
‫liste est égale a custom list et entre parenthèses on passe Pierre, Julien et Marie.
‫Et bien ce org ici va récupérer tous ces éléments et on va pouvoir donc les stocker à l'intérieur de
‫notre classe Custom List.
‫On va ensuite stocker ces arguments dans une variable qu'on va appeler valeur et on va au préalable
‫convertir cette variable ARG en liste puisque par défaut c'est Interpol.
‫Donc là nous on ne fait pas une classe pour gérer des Topol mais pour gérer des listes, donc pour pouvoir
‫utiliser APN et cetera.
‫Eh bien il va falloir travailler sur une liste.
‫Donc on convertit notre variable ARG avec la fonction liste.
‫La prochaine étape, eh bien, c'est tout simplement de créer une méthode que l'on va appeler Append.
‫Donc ça va écraser la méthode.
‫À peine deux bases qui est contenue dans l'objet list et ça va nous permettre de modifier son comportement.
‫On va donc avoir des structures conditionnelles à l'intérieur de cette méthode qui vont nous permettre
‫de vérifier la valeur qu'on passe et de ne pas exécuter la même opération en fonction des valeurs qui
‫sont passées à la méthode.
‫À peine notre première structure conditionnelle va utiliser donc la fonction X instance.
‫Donc on vérifie si la valeur qui est passée est de type intègre, donc hint.
‫Donc si c'est le cas, ça veut dire qu'on essaye d'ajouter un nombre.
‫Donc on va tout simplement faire un print pour indiquer à l'utilisateur qu'il ne peut pas ajouter de
‫nombres à la liste.
‫Et on va retourner falls donc pour indiquer que l'opération n'a pas réussi et arrêter l'exécution de
‫cette méthode à peine.
‫Dans le deuxième cas de figure, ça va être si l'utilisateur passe directement une liste.
‫Donc dans ce cas ci, on va utiliser la méthode Extend qui va nous permettre d'ajouter tous les éléments
‫de la liste dans notre liste, donc dans valeurs.
‫Donc valeur qui est la variable qui contient tous les arguments que j'ai passé à ma classe custom list.
‫Donc on va ajouter toutes ces valeurs avec la méthode Extend et le dernier cas de figure.
‫Eh bien, c'est tout simplement si l'utilisateur passe une chaîne de caractère.
‫Donc dans ce cas ci, on va directement utiliser la méthode Append.
‫Donc cette fois ci, ça va être la méthode append de notre liste qui est contenue dans la variable valeur.
‫Donc ce n'est pas la méthode append de notre classe personnalisée, mais bien la méthode Append de base
‫qui est associée à l'objet list.
‫Pour terminer, on va créer une méthode Remove duplicate, ce qui va nous permettre d'enlever les doublons.
‫On va appeler cette méthode à la fin de la méthode.
‫À peine.
‫Donc comme ça, à chaque fois qu'on ajoute un élément à la liste, eh bien on va être sûr de d'enlever
‫tous les doublons de notre liste à la fin de la méthode Append.
‫Donc cette méthode pour enlever les doublons, elle est assez simple on convertit tout d'abord notre
‫variable valeur, donc notre liste en sept.
‫Les sept ne peuvent pas contenir deux éléments similaires, donc ça va nous permettre d'enlever les
‫doublons.
‫On reconvertit ensuite ce set en liste et on utilise la fonction sortie pour trier tous les éléments
‫de notre liste en ordre alphabétique.
‫On remet ça dans notre variable valeur et donc ainsi on se retrouve avec une liste qui ne contient plus
‫de doublons.
‫Une autre façon de faire qui aurait peut être été plus efficace, ça aurait été deux en fait de vérifier
‫si l'élément qu'on essaye d'ajouter est déjà oui ou non contenu dans la liste dans la méthode append.
‫Donc comme ça ça nous éviterait de passer à travers la structure conditionnelle.
‫On pourrait directement empêcher l'utilisateur d'ajouter une valeur qui est déjà dans la liste.
‫Là, on prend un peu le pas inverse, c'est à dire qu'on ajoute l'élément déjà et après on l'enlève.
‫Donc ça peut paraître un peu bizarre vu que ce qu'on veut c'est tout simplement une liste qui ne contient
‫pas deux fois le même élément.
‫Donc à vous de voir si vous préférez vérifier au préalable si l'élément est déjà dans la liste et dans
‫ce cas ci, ne pas l'ajouter à la liste.
‫Ou alors tout de même passer à travers cette structure conditionnelle.
‫L'ajouter à la liste et ensuite enlever les doublons pour être sûr que vous n'avez pas deux fois le
‫même élément dans votre liste.
‫Donc voilà pour cet exercice dans lequel on a créé une liste personnalisée et une classe personnalisée
‫qui nous permet de créer nos propres listes avec des méthodes bien à nous.
‫Donc, c'est vraiment quelque chose qu'on fait très souvent puisque le comportement de base des objets
‫en Python est quand même assez avancé.
‫Mais des fois ça ne fait pas exactement ce qu'on veut.
‫Donc ça peut être très pratique comme ici de créer notre propre classe pour avoir un comportement exactement
‫comme on le souhaite.
‫Donc voilà pour ma solution à cet exercice sur comment créer une classe personnalisée pour gérer des
‫listes.