Zum Hauptinhalt springen
🔒 Vorschaumodus. Die ersten fünfzehn Foundations-Lektionen sind kostenlos; diese hier ist Pro. Starte einen 7-Tage-Trial, um den Editor, AI-Hinweise und den Rest des Lehrplans freizuschalten. Karte erforderlich, jederzeit im Dashboard kündbar.7-Tage-Trial starten →
← KurseSenior Deep-DivesModule 7 · Memory, GC, modern typing__match_args__ — making your classes destructurablepredict124 / 161
+150 XP
Aufgabe
📝 **Aufgabe:** Die genaue Ausgabe vorhersagen. Fünf Farbwerte werden der Reihe nach mit fünf Fällen abgeglichen. Literal Exact Match, Binding + Guard und Wildcard-with-Literal üben jeweils eine andere Form aus. Der erste passende Fall gewinnt für jede Eingabe. 📋 Implementieren Sie die obige Funktion. Tests laufen automatisch ab. 💡 **Hinweis:** Lesen Sie die Theorie noch einmal, wenn Sie nicht weiterkommen.
Sage die Ausgabe vorher

Lies den Code sorgfältig

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)))

Was wird das Programm ausgeben? Schreib hier:

💬 Diskussion

Sei der erste — stelle eine Frage oder teile einen Tipp.
Anmelden um an der Diskussion teilzunehmen. Lesen ist kostenlos.
Diskussion wird geladen…