pyswitch

Ein einfaches doch leistungsstarkes 'Switch'-Like Dispatcher-System für Python
Jetzt downloaden

pyswitch Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • MIT/X Consortium Lic...
  • Name des Herausgebers:
  • Michael Kent

pyswitch Stichworte


pyswitch Beschreibung

Eine einfache, aber leistungsfähige switch' artigen Dispatcher-System für Python pyswitch ist eine einfache, aber leistungsfähige switch' artige Dispatcher für Python. Es wird von der C-Sprache switch-Anweisung inspiriert, aber mit mehr Flexibilität; Case-Werte sind nicht auf ganze Zahlen wie in C beschränkt, sondern können auf der linken Seite der in Operator oder jeder regulärer Ausdruck eines beliebigen Wert verwendbar mit dem == Gleichheits-Operator oder einem beliebigen Zeichenfolge verwendbar sein. Iterables dieser Typen auch die Verwendung als Fall values.Example sein kann: Hier ist ein kleines Beispiel für seine Verwendung. >>> aus pyswitch Import Switch, SwitchError # Instantiate ein Schaltobjekt >>> mySwitch = Switch () # Register einige Fälle und Sachbearbeiter, den handy-Dandy # Dekorateure vom Switch Objekt zur Verfügung gestellt werden. # A Standard-Handler. Ein Standard-Handler ist optional. Wenn definiert, # es wird für alle Schaltwerte aufgerufen werden nicht von einem anderen # Handler behandelt. Wenn nicht definiert ist, wird ein SwitchError für einen nicht behandelte # Schalter Wert angehoben werden. # Alle Handler wobei der Wertes übergeben schaltete, zusammen mit irgendwelchen # anderen optionalen Positions und Keyword-Parametern an den Schalter gegeben. # Handlers einen Wert zurückgeben können, die Natürlich wird dann durch den Aufruf # Schalter zurückgegeben, die den Handler verursacht aufgerufen werden. # können Handler tun, was Sie wollen. In diesem Standardfall # Beispiel geben wir eine Reihe von interessanten Infos >>> @ mySwitch.default ... def gotDefault (Wert, * args, ** kwargs.): ... return Default-Handler: Ich habe nicht registrierten Wert % R, \ ... "mit args:% R und kwargs:% r" % \ ... (Wert, args, kwargs) # A einziger numerischer Wert Fall. Der Fall Dekorator ist für exakte Anpassung # an den Schaltwert. Der Wert für den Fall Funktion gegeben, # der Fall Wert bezeichnet wird, kann mit dem == Gleichheitsoperator jede Art verwendbar sein. >>> @ mySwitch.case (0) ... def gotZero (Wert, * args, * * kwargs): ... return "gotZero: I a% d erhielt, mit args:% R und kwargs:% r" % \ ... (Wert, args, kwargs) # eine Reihe von numerischen Werten Fall. Ein iterable von Werten # als Fallwert gegeben werden >>> @ mySwitch.case (Bereich (5, 10)) ... def gotFiveThruNine (Wert, * args, ** kwargs.): ... return gotFiveThruNine :% r und kwargs:.% r% \ ... (Wert, args, kwargs) # ein String-Case-Wert, für eine exakte Übereinstimmung >>> @ mySwitch.case ( I mit args eine% d, bekam Guido ') ... def gotGuido (Wert, * args, ** kwargs): ... return "gotGuido: ich habe '% s', mit args:% r und kwargs:% r" % \ ... ( Wert, args, kwargs) # Ein String, der für die Verwendung mit dem 'in' Operator >>> @ mySwitch.caseIn ( 'lo') ... def gotLo (Wert, * args, ** kwargs.): ... return "gotLo: ich habe '% s', mit args:% r und kwargs:% r".% \ ... (Wert, args, kwargs) # ein regulärer Ausdruck Mustererkennung in einem String # Sie können auch passieren in ein vorkompilierte regulärer Ausdruck. # Für caseRegEx, wird der Wert auf den Fall Handler übergeben ist # tatsächlich das Spiel-Objekt aus dem erfolgreichen Spiel regulären Ausdruck # Muster führt. >>> @ mySwitch.caseRegEx (r '\ b ( y \ w *) \ b ') ... def gotPyword (matchObj, args *, ** kwargs): ... return gotPyword: Ich habe eine Matchobject wo Gruppe (1) ist, '% s', \ ... "mit args:% R und kwargs:% r" % \ ... (matchObj.group (1), args, kwargs) # und schließlich können Sie eine iterable von Mischtyp-Wert zu Fall # Casein und caseRegEx passieren. Hier gehen wir in einer Liste von heterogenem # Wert Verwendung für exakte Übereinstimmungen zu sein. >>> @ mySwitch.case () ... def gotStuffInSeq (Wert, * args, ** kwargs ): ... return "gotStuffInSeq: ich habe% r, mit args:% r und kwargs:% r".% \ ... (Wert, args, jetzt kwargs) # zeigen, was wir tun können >>> mySwitch ( 0, Prüfung = false) "gotZero: I mit args a 0, bekam: () und kwargs: { 'Prüfung': false}" >>> mySwitch (6, Flag = 'langweilig') "gotFiveThruNine: ich habe eine 6 mit argumente: () und kwargs: { 'flag': 'langweilig'} ">>> mySwitch (10, 42) 'Default-Handler: ich habe nicht registrierten Wert 10, mit argumente: (42) und kwargs: {} '>>> mySwitch (' Guido 'BDFL = True) "gotGuido: ich habe 'Guido', mit argumente: () und kwargs: { 'BDFL': True}" >>> mySwitch (' Jeder Guido um gesehen? ') "Default-Handler: ich habe nicht eingetragene Wert 'Jeder gesehen Guido around', mit argumente: () und kwargs: {} >>> mySwitch (?".' ja, und er sagte, "Hallo" ', 99, ja = 'nein') "gotLo: ich habe 'lo', mit argumente: (99,) und kwargs: { 'ja': 'nein'}" >>> mySwitch ( 'Vogel ist das Python-Wort des Tages') gotPyword: Ich bekam einen Matchobject wo Gruppe (1) ist 'Python', mit argumente: () und kwargs: {} ">>> mySwitch ( 'yo')" gotStuffInSeq: Ich habe 'yo', mit argumente: () und kwargs : {}" Anforderungen: · Python Was ist neu in dieser Version: Es ist nicht mehr notwendig, den Schalter Methode des Switch Klasse aufrufen, um einen Wert zu versenden, da die __call__ Methode jetzt ein Synonym ist. Anstatt also, können Sie: · MySwitch = Switch () · ... Registrieren Sie Ihre Fälle ... · ReturnValue = MySwitch (value_to_switch_on) · Die Schaltmethode ist jedoch immer noch für die Rückwärtskompatibilität da.


pyswitch Zugehörige Software

E.

Bewerten und Anzeigen von Befehlszeilenausdrücken mit "Python -Me Expr" ...

361

Herunterladen