[Débutants] Exemple de simplification de code (+ exemple poo)

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: [Débutants] Exemple de simplification de code (+ exemple poo)

Message par Bud Spencer » lun. 19 août 2019 12:05

Un peu de baratin technique qui peut servir.
Les listes :

Une petite note concernant la différence entre les listes ‘tuple’ et les listes ‘list’ évoquée précédemment avec Dyox. Suivant les cas, on peut utiliser, soit l’un soit l’autre, cela fonctionnera pareil. La différence fondamentale entre ces 2 types de listes est que le tuple est ‘immuable’. Une fois créer, on ne peut ni en modifier les éléments ni en ajouter ou supprimer. Une list est un type ‘mutable’. Ce qui sous-entend que l’on peut ajouter, supprimer et modifier ses éléments et elle dispose de nombreuses fonctions pour manipuler son contenu. Dans le dernier exemple j’instancie mes objets bargraph de la sorte :
bargraphCpu = Bargraph([])
les ‘[ ]’ indiquent que je passe une list en paramètre et l’initialiseur de Bargraph le prend en compte pour définir le type de self._barres. Si je modifie le code par celui-ci
bargraphCpu = Bargraph(())
Cela ne fonctionnera plus (Les ‘()’ sont censées représenter un tuple). Déjà parce qu’un tuple ne peut pas etre considéré comme tel s’il est vide (alors qu’une list le peut) et meme si c’était le cas, l’initialiseur aurrait défini self._barres comme un tuple et je ne pourrais pas ajouter d’élément avec l’action ‘addBarre’
J’ajouterais que si l’on peut utiliser un tuple, il ni a aucune raison d’utiliser une list.

Il existe en python un troisième type de liste qui sont les dictionnaires (Dictionary) et que l’on initialise par des ‘{ }’. Les dictionnaires sont mutables et assez proche des list sauf que chaque élément est identifié par une clé. On ne le voit pas forcement dans le code, mais config est un dictionnaire créé par la désérialisation du fichier json et chaque élément est appelé par le nom de sa clé (config["Refresh"] retourne la valeur qui correspond a la clé "Refresh").
Modifié en dernier par Bud Spencer le mar. 20 août 2019 10:40, modifié 1 fois.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Frédéric
Messages : 17
Enregistré le : lun. 29 juil. 2019 19:47

Re: [Débutants] Exemple de simplification de code (+ exemple poo)

Message par Frédéric » lun. 19 août 2019 13:04

Merci Bud pour cette précision intéressante. Tu fais du bon boulot!!!

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: [Débutants] Exemple de simplification de code (+ exemple poo)

Message par Bud Spencer » mar. 20 août 2019 19:56

Bha, ça démontre que meme à partir d’un projet tout simple il y a une multitude de façon d’écrire un programme pour arriver au meme résultat et que la pire erreur que l’on puisse faire est de considérer le résultat comme une fin en soi. Faire en sorte que ‘cela marche’ ne doit etre qu’une première étape (importante), mais on apprend beaucoup plus en voulant élargir le potentiel de ce que l’on écrit qu’en restant simplement sur un résultat escompté au départ ;)
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Répondre

Retourner vers « Python »