Skip to content

Python - Match-Case Statement

Python3
1 1 167
  • Warum wollte iich unbedingt mal endlci Python 3.10 ausprobieren? Wegen dem Match-Case Statement. Ich wollte mal ausprobieren, ob das angenehmer zu programmieren ist, als diese verschachtelten if-else Statements.

    Aus der Anleitung

    match subject:
        case <pattern_1>:
            <action_1>
        case <pattern_2>:
            <action_2>
        case <pattern_3>:
            <action_3>
        case _:
            <action_wildcard>
    

    Einen schönen Beitrag habe ich auch im Internet gefunden. Ok, hier mal ein Beispiel.

    match_list = [backup_data[row].rest, bool(backup_data[row].password)]
    match match_list:
    

    Ich erzeuge eine Liste, mit zwei Variablen.

    • backup_data[row].rest - 0/1
    • backup_data[row].password - password/keines gesetzt

    Das kann man dann abfragen mit

    case ["0", False]:
    

    Dann gibt es in meinem Fall noch

    case["0", True]:
    case["1", False]:
    case["1", False]:
    

    Dann könnten man noch das hier machen

    case _:
    

    Der fängt alles ab, was vorher nicht erfolgreich war.

    Ich finde das recht praktisch, weil es doch um einiges angenehmer zu lesen ist.

  • 0 Stimmen
    2 Beiträge
    584 Aufrufe
    FrankMF
    Ich habe den Sonntag mal genutzt um ein wenig was einzubauen. Einmal habe ich mit datatables.net die Tabelle etwas funktionaler gestaltet. [image: 1736705735786-00a95363-1f41-4bbf-884a-34f21aea81e4-grafik.png] Man kann nun suchen, sortieren und wenn man mehr als 10 Datenpunkte hat, hat die Tabelle auch Pagination. Ein nettes Projekt, macht einiges einfacher Das nächste, ich hatte es im Video ja kurz erwähnt, mir fehlte ja noch die Restore Funktion von Restic. Ok, ist jetzt auch drin. Da die Benutzerverwaltung mittlerweile komplett eingebaut ist, werde ich demnächst meine Test Datenbanken und alles was damit zu tuen hat, aus dem Code entfernen. Brauch ich jetzt nicht mehr. Habe jetzt zwei Benutzer, einen Produktiven und einen zum Testen. Langfristig steht auch noch eine zweite Sprache auf dem Zettel. Aber, dafür muss ich Lust haben, das Thema juckt nicht so richtig
  • Python - Interessante Packages

    Python3 python linux
    1
    0 Stimmen
    1 Beiträge
    160 Aufrufe
    Niemand hat geantwortet
  • FreeOTP+ Datenumzug nach Bitwarden Authenticator

    Python3 ki-generiert python
    1
    0 Stimmen
    1 Beiträge
    255 Aufrufe
    Niemand hat geantwortet
  • NiceGUI

    Linux nicegui linux python
    2
    0 Stimmen
    2 Beiträge
    459 Aufrufe
    FrankMF
    Ich habe mir das jetzt einige Tage gegeben und habe mich dagegen entschieden. Werde weiterhin PyWebIO benutzen. Hauptgrund ist die wesentlich bessere Dokumentation -> https://pywebio.readthedocs.io/en/latest/index.html Da kann ich mir auch mit meinem Python Kenntnisstand die Informationen holen, die ich brauche um es einzusetzen.
  • Python - Frameworks

    Python3 python pywebio flet
    2
    0 Stimmen
    2 Beiträge
    226 Aufrufe
    FrankMF
    Und mal hier parken https://www.youtube.com/watch?v=Tucr8Ta-kq4&t=1911s
  • Vorstellung Restic UI als PyWebIO Version

    PyWebIO restic-ui pywebio python
    7
    0 Stimmen
    7 Beiträge
    383 Aufrufe
    FrankMF
    https://gitlab.com/Bullet64/restic_ui_pywebio/-/commit/45c83cd8c38f466e427046b0f123c23def1bd7ca
  • Example Class

    Angeheftet Python3 python json
    3
    0 Stimmen
    3 Beiträge
    255 Aufrufe
    FrankMF
    In meinem PywebIO Projekt tauchte heute ein alter Bekannter auf. Wenn ich einen Eintrag (innerhalb der Liste) löschte, war das etwas durcheinander Ja, den Fehler kenne ich schon was länger und stolper immer mal wieder drüber. Heute z.B. Also mal grübeln Das mache ich, wenn ich einen Eintrag lösche case 'Yes': # delete entrie BackupList.delete((line - 1)) # save json BackupList.save_json() # Load data from filesystem BackupList.load_json() # Reload Tab Backup backup() Ich mache folgendes lösche den Eintrag speicher die Liste lade die Liste baue den Tab wieder auf Das führt aber dazu, das meine Liste die als Objekt im Speicher steht nicht aktuell ist. Im Gegenteil, da ist dann etwas Unordnung. Ich brauchte also die Möglichkeit mein Objekt backups irgendwie zurückzusetzen. Mal gegoogelt und die Dinge sind manchmal wirklich total easy # clear dict backups.clear() Das leert das Objekt und im nächsten Schritt kann ich es wieder befüllen. Lösung case 'Yes': # delete entrie BackupList.delete((line - 1)) # save json BackupList.save_json() # clear dict backups.clear() # Load data from filesystem BackupList.load_json() # Reload Tab Backup backup() Problem erledigt. Damit ich das noch finde, wenn mein Kopf das nicht mehr hergibt, notiere ich das hier.
  • ResticUI with PyWebIO - Repo

    PyWebIO pywebio python restic-ui
    1
    0 Stimmen
    1 Beiträge
    137 Aufrufe
    Niemand hat geantwortet