Les décorateurs ne sont pas du tout adaptés dans ce cas de figure.
Les décorateurs de Python sont statiques ils vont modifier une fonction pour toute l'exécution du programme, alors que l'état de ton moteur est dynamique : il va varier pendant l'exécution.
Je mets de côté le décorateur, mais que mettre à la place ?
Je cherche un moyen de faire varier le comportement d'une fonction d'affichage en fonction de conditions.
Et j'essaie de modulariser cela pour en faciliter la lecture et la maintenance.
Ici il n'y a que 4 codes couleurs mais si il y en avait 100 ... Je sais pas comment faire.
J'ai essayé ça mais le résultat est étrange , il me manque peut-être un "échappement" :
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from os import system
import os
from colorama import init, Fore, Back, Style
init()
os.system('cls')
a = "Voici l'état du moteur : "
m = "critique"
red = (Back.BLACK + Fore.RED + Style.NORMAL +a,m+ Back.RESET + Fore.RESET + Style.NORMAL )
... plein de code imaginaire...
if ... :
print(red)
Je suis moi-même débutant en Python et ton exercice m’a l’air rigolo. Ce que j’ai fait est probablement inutilement compliqué, j’aimerai avoir l’avis de gens sur la question.
Je n’ai pas fais le main car c’est une simple boucle. Il faudrait également que la température évolue mais il n’y avait pas d’instruction la-dessus dans l’énoncé.
EDIT : modification du code pour jouer avec les propriétés.
Rien à redire sur ton code, simbilou. J'aurais fait pareil.
Juste une toute petite remarque sur les conventions : en principe pour un attribut "privé" on place l'underscore devant. Ça n'empêche personne d'y accéder (c'est voulu, "entre adultes consentants" tout ça...), mais si tu doubles cet underscore en préfixe, Python s' arrange alors pour mangler le nom de l'attribut pour qu'il ne soit plus directement manipulable de l'extérieur. Dans la pratique c'est très peu utilisé, mais ça renforce la sémantique de l'underscore en préfixe.
Par ailleurs l'underscore post fixé est aussi utilisé, quand on veut éviter un name clash entre une variable et une builtin (genre file_, input_...).
Juste une toute petite remarque sur les conventions : en principe pour un attribut "privé" on place l'underscore devant
[…]
Par ailleurs l'underscore post fixé est aussi utilisé, quand on veut éviter un name clash entre une variable et une builtin (genre file_, input_...).
Erf, c’est mon habitude du C ou les identificateurs commençant par un underscore sont usuellement réservé à l’implémentation. Merci de l’avoir signalé, apprendre les bonnes pratiques fait parti du jeu.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.