Je fais du python au quotidien... et là je suis séché : je n'ai jamais rien lu de si moche !
Code illisible
Tout est mélangé
...
Pour commencer, python dispose d'un mécanisme de namespace qui permet de séparer les trucs dans des distincts:
les modules : de simples fichiers python qui permettent de séparer le code, importables.
des packages : des dossiers contenant (au moins) un fichier __init__.py, importables.
Ces 2 trucs permettent de séparer les choses dans des espaces distincts, et éviter les scripts à ralonge.
Les fonctions et méthodes ne doivent pas dépasser 50 lignes, sinon tu dois découper.
En plus, tu mélanges des aspects "objet" avec du code procédural : la seule fonction doit être main(*args), protégée :
defmain(*args):# your launching code...return0if__name__=="__main__":sys.exit(main(sys.argv[1:]))
Ça permet de rendre un script importable, sans qu'il soit executé directement.
Le main doit retourner un entier, 0 si tout va bien, un autre entier sinon.
Ensuite, les règles de nommage:
les noms de variables en snake-case : truc_machin = "bidule"
les noms de classes capitalisées :
classClock:def__init__(self,**kwargs):self.thing=kwargs.get('thing',None)# None by default...
les variables privées commencent par un _
_private="foo"
Tu noteras que plutôt que de mettre 20 args à mon __init__, j'utilise l'opérateur splat qui permet de passer un **kwargs, qui est le dictionnaire de tous les paramètres passée, nommés.
Pour ta question concernant la suppression d'instance, tu as une méthode spéciale __del__(self) qui permet de gérer la suppression d'instance.
Il faut garder en mémoire qu'une classe permet de fabriquer des instances, et qu'elle peut avoir des méthodes qui permettent de manipuler ces instances...
# Pas beau du tout...
Posté par François GUÉRIN (Mastodon) . En réponse au message Mon premier code python. Évalué à 3. Dernière modification le 23 janvier 2019 à 18:11.
Salut,
Je fais du python au quotidien... et là je suis séché : je n'ai jamais rien lu de si moche !
Pour commencer, python dispose d'un mécanisme de namespace qui permet de séparer les trucs dans des distincts:
__init__.py, importables.Ces 2 trucs permettent de séparer les choses dans des espaces distincts, et éviter les scripts à ralonge.
Les fonctions et méthodes ne doivent pas dépasser 50 lignes, sinon tu dois découper.
En plus, tu mélanges des aspects "objet" avec du code procédural : la seule fonction doit être
main(*args), protégée :Ça permet de rendre un script importable, sans qu'il soit executé directement.
Le
maindoit retourner un entier, 0 si tout va bien, un autre entier sinon.Ensuite, les règles de nommage:
truc_machin = "bidule"_Tu noteras que plutôt que de mettre 20 args à mon
__init__, j'utilise l'opérateursplatqui permet de passer un**kwargs, qui est le dictionnaire de tous les paramètres passée, nommés.Pour ta question concernant la suppression d'instance, tu as une méthode spéciale
__del__(self)qui permet de gérer la suppression d'instance.Il faut garder en mémoire qu'une classe permet de fabriquer des instances, et qu'elle peut avoir des méthodes qui permettent de manipuler ces instances...
Bon courage !