pyswitch

Un sistema de despachador similar a un simple pero potente "similar a Python
Descargar ahora

pyswitch Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • MIT/X Consortium Lic...
  • Nombre del editor:
  • Michael Kent

pyswitch Etiquetas


pyswitch Descripción

Un sistema de despachador similar a un simple pero poderoso "para Python Pyswitch es un simple y poderoso despachador similar a un 'interruptor para Python. Está inspirado en la Declaración del Interruptor de Idioma C, pero con más flexibilidad; Los valores de caso no se limitan a enteros como en C, pero pueden tener cualquier valor utilizable con el operador '==' de igualdad, o cualquier cadena utilizable en el lado izquierdo del operador 'en', o cualquier expresión regular. Iterables de estos tipos también se pueden usar como valores de casos. Ejemplo: Aquí hay un pequeño ejemplo de su uso: >>> desde el interruptor de importación de Pyswitch, CUERDURROR # Instanciate un objeto de interruptor. >>> mysswitch = interruptor () # Registre algunos casos y Manipuladores de casos, utilizando los decoradores manuales # Dandy proporcionados por el objeto Switch. # un controlador predeterminado. Un controlador predeterminado es opcional. Si se define, # se llamará a todos los valores del interruptor que no se manejarán por ningún otro controlador # Si no se define, se recaudará un interruptor para un valor del interruptor # UNHANGLED. # Se pasan a todos los manipuladores, el valor se está encendiendo, junto con cualquier otro parámetro opcional posicional y palabra clave dado al interruptor. # Los manipuladores pueden devolver un valor, lo que Luego se devuelve por la llamada a # Interruptor que hizo que se llamara al manejador. # Naturalmente, los manipuladores pueden hacer lo que quieras. En este ejemplo de la Caso predeterminado #, devolvemos una cadena de información interesante. >>> @ myswitch.default ... Def gotdefault (valor, * args, ** kwargs): ... devolver "Manipulador predeterminado: obtuve valor no registrado % R, "..." con args:% r y kwargs:% r "% ... (valor, args, kwargs) # un solo valor de caso numérico. El decorador 'Caso' es para una coincidencia exacta # en el valor del interruptor. El valor dado a la función de la caja, llamada # el valor de caso, puede ser cualquier tipo utilizable con el operador '==' de igualdad. >>> @ mysswitch.case (0) ... Def Gotzero (Valor, * Args, * * Kwargs): ... Retorno "Gotzero: Tengo un% D, con Args:% R y Kwargs:% R"% ... (valor, args, kwargs) # una gama de valores de casos numéricos. Se puede administrar los valores que se pueden administrar # como el valor de la caja. >>> @ mysswitch.case (rango (5, 10)) ... definith gotfivethrunine (valor, * args, ** kwargs): ... regreso "gotfivethrunine : Obtuve un% D, con Args:% R y Kwargs:% R "% ... (valor, args, kwargs) # un valor de caso de cadena, para una coincidencia exacta. >>> @ myswitch.case (' GUIDO ') ... DEF GOTGUIDO (valor, * args, ** kwargs): ... regreso "Gotguido: Tengo'% s ', con args:% r y kwargs:% r"% ... ( Valor, Args, Kwargs) # una cadena de valor para usar con el operador 'en'. >>> @ myswitch.casein ('lo') ... Def gotlo (valor, * args, ** kwargs): ... Devuelve "GOTLO: Tengo '% s', con args:% r y kwargs:% r"% \ ... (valor, args, kwargs) # un patrón de expresión regular combate en una cadena. # También puedes pasar en Una expresión regular pre-compilada. # Para CASEEGEX, el valor pasado al manipulador de casos es en realidad # el objeto de partido resultante de la coincidencia de patrón de expresión regular exitosa. >>> @ myswitch.caseegeex (r '\ b ( Y \ W *) \ B ') ... DeF Gotpyword (MatchobJ, * Args, ** Kwargs): ... Return "Gotpyword: Conseguí un MatchObject donde el grupo (1) es '% s', "\ ..." con args:% r y kwargs:% r "% \ ... (Matchobj.Group (1), Args, Kwargs) # Y, por último, puede pasar un iterable de valores de tipo mixto a Funda, # Casein y CasErespex. Aquí, pasamos en una lista de valores heterogéneos de # para ser utilizados para coincidencias exactas. >>> @ myswitch.case () ... DEF GOTSTUFFINSEQ (Valor, * Args, ** Kwargs ): ... Regreso "Gotstuffinseq: Tengo% R, con args:% r y kwargs:% r"% ... (valor, args, kwargs) # ahora muestra lo que podemos hacer. >>> mysswitch ( 0, Testing = False) "Gotzero: Tengo un 0, con Args: () y Kwargs: {'Prueba': Falso}" >>> Myswitch (6, bandera = 'aburrido') "GotFivethRunine: Tengo un 6 , con args: () y kwargs: {'bandera': 'aburrido'} ">>> mysswitch (10, 42) 'Handler predeterminado: Tengo un valor no registrado 10, con Args: (42,) y Kwargs: {} '>>> Myswitch (' Guido ', BDFL = VERDADERO) "GOTGUIDO: Tengo' GUIDO ', con Args: () y Kwargs: {' BDFL ': verdadero}" >>> Myswitch (' ¿Alguien ha visto a Guido alrededor? ') "Manipulador predeterminado: ¿Noté un valor no registrado' Alguien ha visto a Guido alrededor? ', Con Args: () y Kwargs: {}" >>> Myswitch (' Sí, y él dijo "Hola". ', 99, sí = 'No') "GOTLO: Tengo 'lo', con Args: (99,) y Kwargs: {'Sí': 'No'}" >>> Myswitch ('Pájaro es la palabra pitón del día'). "Gotpyword: Tengo un MatchObject donde el grupo (1) es 'Python', con Args: () y Kwargs: {} ">>> myswitch ('yo')" Gotstuffinseq: Tengo 'yo', con Args: () y Kwargs : {} "Requisitos: · Python ¿Qué hay de nuevo en este lanzamiento: Ya no es necesario llamar al método de conmutación de la clase de conmutación para enviar un valor, ya que el método __call__ ahora es un sinónimo. Entonces, en cambio, puedes usar: · Myswitch = Switch () · ... Registre sus casos ... · RendimientoValue = Myswitch (valor_to_switch_on) · Pero el método del interruptor sigue ahí para la compatibilidad hacia atrás.


pyswitch Software relacionado