py-muster-patching

Data-Struktur-Muster, das für Python passt und auspackt
Jetzt downloaden

py-muster-patching Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • MIT/X Consortium Lic...
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Erik Allik
  • Website des Verlags:
  • https://github.com/eallik/

py-muster-patching Stichworte


py-muster-patching Beschreibung

py-pattern-passing ist ein Datenstruktur-Muster, das für python.usagecall die Mustermatchinging.match () -Funktion mit zwei Argumenten packt Fletten: TRUE, um die übereinstimmenden Werte abgeflacht zu haben, dh als flaches Tupel unabhängig von ihrer Position in der Struktur des übereinstimmenden Data.return-Werts zurückgegeben: Wenn FLATTEN TRUE ist: Match_OK, if Flatten trifft nicht: match_ok, passed_data_structurecaveat: Wenn alle übereinstimmenden Werte im Muster ignoriert werden, gibt Match () kein Tupel zurück, sondern ein boolean.yes: match_ok = Match (Muster, Daten) Nein: match_ok, = pass (Muster, Daten) Eingebaute Übereinstimmungsobjekte- Any- is_instanceany Match-Objekt kann mit ignoriert () umwickelt werden, um den von dem Spielobjekt in den zurückgegebenen Werten übereinstimmenden Wert zu ignorieren. EIGNTORE selbst kann als Verknüpfung für ignoriert (beliebig) verwendet werden. == Übereinstimmung (ignorieren, 123) Verwendung in (Gerät) Tests (aber auch Andert anderswo) Der Vergleich der Rückgabewerte von Funktionen ist langwierig, wenn Sie den Operator == nicht einfach verwenden können. Wenn beispielsweise eine Funktion ein Tupel zurückgibt, und Sie kümmern sich nur um einige Teile des Tupels und nicht nur das gesamte Tupel: Retval = Some_function_under_test () Assert Retval und Isinstance (Retval, Tupel) \ und Len (Retval) == 3 und Retval == 'foo' \ und isistance (Retval , Tupel) und Len (Retval ) == 2 \ und Isinstance (Retval , Someexception) mit Musteranpassung: Retval = etwas_function_under_test () Assert Retval == ('foo', (beliebig, is_instance (Someexception)), beliebig) Beispielsmatch okmatch_ok, value = Match (beliebig, "Foobar ') Assert stetig_ok und value ==' Foobar'match_ok = Match (ignorieren (ignorieren (ignorieren) Beliebig), 'foobar') Assert stetig_okmatch_ok, value1, value2 pass ((beliebig, beliebig), ('foo', 'bar')) assert match_ok und value1 == 'foo' und value2 == 'bar'match_ok, ( value1, value2) = Übereinstimmung ((beliebig), ('foo', 'bar'), flatten = falsch) match_ok und value1 == 'foo' und value2 == 'bar'match_ok, (value1,) = Übereinstimmung ((beliebig, ignorieren (beliebig)), ('foo', 'whatev')) assert match_ok und value1 == 'foo'match_ok, value1, value2 = pass ((' foo ', Beliebig), ('foo', 1, 2)) match_ok und value1 == 1 und value2 == 2match_ok, value1, value2, value3 = passen (('foo', beliebig (beliebig)), ('foo', 1, (2, 3))) match_ok und value1 == 1 und value2 == 2 und value3 = 3match_ok, (value1, (value2, value3)) = Übereinstimmung (('foo', beliebig, (Beliebig)), ('foo', 1, (2, 3)), flatten = falsch) match_ok und value1 == 1 und value2 == 2 und value3 = 3No matchmatch_ok = Match (3, 4) Assert nicht stetig_ok # Beachten Sie, wie Sie die Rückgabewerte immer noch erfolgreich auspacken können, und ignorieren Sie einfach "Wert", wenn das Spiel fehlgeschlagen match_ok, value = Match (IS_INSTANCE (UNICODE), '123132') Assert nicht Match_OK #, wie Sie noch erfolgreich auspacken können von Return-Werten und ignorieren Sie einfach den "Wert", wenn das Spiel fehlgeschlagen matatch_ok (value1, (value2, value3)) = übereinstimmen (('foo', (beliebig, (beliebig)), ('nicht foo', ( 1, (2, 3)))) Assert nicht stetig_ok # ... auch wenn die Struktur der Daten vollständig mismatchatatch_ok, (value1, (value2, value3)) = übereinstimmen (('foo', (beliebig, Irgendjemand))), ('foo', 'bla BLA ')) Assert nicht Match_OK # ... nicht auf `Value1`,` value2` und `value3` Sie müssen `match_ok` yources.product's Homepage überprüfen


py-muster-patching Zugehörige Software