Aller au contenu principal
🔒 Mode aperçu. Les quinze premières leçons Foundations sont gratuites ; celle-ci est Pro. Démarrez un trial de 7 jours pour débloquer l'éditeur, les conseils AI et le reste du programme. Carte requise, annulez à tout moment dans Dashboard.Démarrer le trial de 7 jours →
← CoursSenior Deep-DivesModule 7 · Memory, GC, modern typing__match_args__ — making your classes destructurablepredict124 / 161
+150 XP
Tâche
📝 **Tâche :** Prédisez le résultat exact. Cinq valeurs de couleur sont comparées à cinq cas dans l'ordre. La correspondance exacte littérale, la liaison + la garde et le caractère générique avec littéral exercent chacun une forme différente. Le premier cas correspondant gagne pour chaque entrée. 📋 Implémentez la fonction ci-dessus. Les tests s'exécutent automatiquement. 💡 **Indice :** Relisez la théorie si vous êtes bloqué.
Prédis la sortie

Lis le code attentivement

class Color:
    __match_args__ = ("r", "g", "b")

    def __init__(self, r: int, g: int, b: int) -> None:
        self.r, self.g, self.b = r, g, b


def describe(c: Color) -> str:
    match c:
        case Color(0, 0, 0):
            return "black"
        case Color(255, 255, 255):
            return "white"
        case Color(r, g, b) if r == g == b:
            return f"gray({r})"
        case Color(r, 0, 0):
            return f"red-only({r})"
        case Color(r, g, b):
            return f"rgb({r},{g},{b})"
    return "unreachable"


print(describe(Color(0, 0, 0)))
print(describe(Color(255, 255, 255)))
print(describe(Color(50, 50, 50)))
print(describe(Color(200, 0, 0)))
print(describe(Color(10, 20, 30)))

Que va afficher le programme ? Écris ici :

💬 Discussion

Soyez le premier à poser une question ou partager une astuce.
Connectez-vous pour rejoindre la discussion. La lecture est gratuite.
Chargement de la discussion…