Py-Pattern-Amplio

Patrón de estructura de datos que coincide y desempaquetando para Python
Descargar ahora

Py-Pattern-Amplio Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • MIT/X Consortium Lic...
  • Precio:
  • FREE
  • Nombre del editor:
  • Erik Allik
  • Sitio web del editor:
  • https://github.com/eallik/

Py-Pattern-Amplio Etiquetas


Py-Pattern-Amplio Descripción

PY-PATTEL-Matching es un patrón de estructura de datos que coincide y desempaquetando para Python.usagecall la función MATERNMATCHING.MATCH () Función con dos argumentos: - Argumento 1: el patrón para que coincida con el argumento 2: la estructura de datos para coincidir con el argumento opcional Aplanar: fiel a tener los valores emparejados aplanados, es decir, devueltos como una tupán plana, independientemente de su posición en la estructura del valor coincidente. VALOR DERECHO: Si se aplanue es verdadero: Match_OK, si Aplatten no es cierto: Match_OK, coincidente_data_structureCaveat: Si todos los valores coincidentes en el patrón se ignoran, coinciden () no devuelve una tupla sino un booleano. Datos) Objetos de coincidencia incorporados: cualquier objeto de coincidencia IS_INSTAncaney puede envolverse con ignorar () para ignorar el valor que coincida con el objeto de coincidencia en los valores devueltos. Se puede usar el propio acceso directo para Ignorar (cualquiera). Ost == Match (ignorar, 123) Uso en pruebas (unidad) (pero también En cualquier otro lugar) comparar los valores de retorno de las funciones es tediosa si no puede simplemente usar el operador ==. Por ejemplo, cuando una función devuelve una tupla y solo se preocupa por algunas partes de la tupla y no toda la tupla: retval = some_function_under_test () afirman retval y isinstance (retval, tuple) \ y len (retval) == 3 y retval == 'foo' \ e isInstance (retval , tupla) y len (retval ) == 2 \ e isInstance (Vetval , SomeException) con un patrón que coincide con el patrón: retval = some_function_under_test () Asfirmación de retval == ('foo', (cualquiera, is_instance (someexception)), cualquiera) ejemplosmatch okmatch_ok, valor = coincidir (cualquiera, 'foobar') Assert Match_OK y Valor == 'foobar'match_ok = coincidir (ignorar Cualquiera), 'foobar') Assert Match_okmatch_ok, Value1, Value2 Coincidir ((cualquiera, cualquiera), ('Foo', 'Bar')) Assert Match_OK y Value1 == 'foo' y value2 == 'bar'match_ok, ( valor1, valor2) = coincide ((cualquiera, cualquiera), ('foo', 'bar'), flatten = false) Assert coinct_ok y value1 == 'foo' y value2 == 'bar'match_ok, (value1,) = partido ((cualquiera, ignore (cualquiera)), ('foo', 'whatev')) Assert Match_Ok y Value1 == 'foo'match_ok, value1, valor2 = coincidir ((' foo ', Cualquiera, cualquiera), ('foo', 1, 2)) Assert Match_Ok y Value1 == 1 y valor2 == 2match_ok, valor1, valor2, valor3 = coincidir (('foo', cualquiera, (cualquiera, cualquiera)), ('foo', 1, (2, 3))) Assert Match_Ok y Value1 == 1 y Value2 == 2 y Value3 = 3Match_OK, (Value1, (Value2, Value3)) Match (('foo', cualquiera, (Cualquiera, cualquiera), ('foo', 1, (2, 3)), flatten = false) Assert Match_Ok y Value1 == 1 y Value2 == 2 y Value3 = 3NO MatchMatch_OK = coincidir (3, 4) Asfierta NO MATCH_OK # Observe cómo se puede desempacar con éxito los valores de retorno y simplemente ignorar el valor 'Si el coincidencia falleció en Fallatch_OK, Valor = Coincidir (IS_INSTANCE (UNICODE),' 123132 ') Afirmación NO MATCH_OK # Anote cómo se puede desembalar con éxito de los valores de retorno y simplemente ignore "Valor" si el coincidencia falló a fallidoMatch_OK, (Value1, (Value2, Value3)) = coincide (('foo', (cualquiera, (cualquiera, cual)), ('no-foo', ( 1, (2, 3)))) Afirmación no match_ok # ... Incluso cuando la estructura de los datos completamente MISMATCHESMATCH_OK, (valor1, (valor2, valor3)) = coincidió (('foo', (cualquiera, (cualquiera, (cualquiera, Cualquiera))), ('foo', 'bla Bla ')) Afirmación no coincidente_OK # ... No confíe en `Value1',` Valor2` y `Value3 'siendo' Ninguno ', sin embargo, el matador aún puede devolver lo que quiera allí; Tienes que comprobar 'Match_ok` yourself.spage.product's Página de inicio


Py-Pattern-Amplio Software relacionado