Python admite la coincidencia de patrones

Python

Después de algunas discusiones, el comité directivo de Python aceptó la propuesta de agregar coincidencia de patrones a Python. La situación específica es adoptar PEP 634 , 635 y 636 , y rechazar PEP 640 y 642 .

Durante mucho tiempo, la comunidad de Python ha presentado varias sugerencias para la realización de condiciones específicas de múltiples ramas en el lenguaje Python (similar a la declaración de cambio en C / C ++), pero ninguna de las propuestas puede finalmente implementarse. En los últimos 8 meses aproximadamente, la comunidad de Python discutió una propuesta que podría resolver el problema de la condición de múltiples ramas (o incluso más) y se adoptaron las sugerencias de coincidencia de patrones (PEP 634, 635 y 636). Los ejemplos son los siguientes:

match command.split():

case ["quit"]:

print("Goodbye!")

quit_game()

case ["get", obj]:

character.get(obj, current_room)

case ["go", direction]:

current_room = current_room.neighbor(direction)

case ["drop", *objects]:

for obj in objects:

character.drop(obj, current_room)

case ["north"] | ["go", "north"]:

current_room = current_room.neighbor("north")

case ["go", ("north" | "south" | "east" | "west")]:

current_room = current_room.neighbor(...)

case ["go", direction] if direction in current_room.exits:

current_room = current_room.neighbor(direction)

case Click(position=(x, y)):

handle_click_at(x, y)

case Click((x, y)):

handle_click_at(x, y)

case Click((x, y), button=Button.LEFT): # This is a left click

handle_click_at(x, y)

case {"sleep": duration}:

ui.wait(duration)

case {"sleep": float(duration)}:

ui.wait(duration)

case _:

print(f"Sorry, I couldn't understand {command!r}")

En el correo electrónico, el comité directivo de Python cree que esta función requiere documentación y especificaciones completas, incluida la parte del tutorial de la documentación y la referencia del lenguaje, y la documentación debe enviarse con Python 3.10, por lo que 3.10 no se publicará hasta que se complete este contenido. . Al mismo tiempo, el comité directivo declaró que rechazó PEP 640 y 642 que intentaban mejorar la coincidencia de patrones debido a la falta de apoyo de los desarrolladores principales.

Además, aunque se ha determinado hasta ahora, antes del punto de congelación funcional de Python 3.10 (consulte PEP 619 para el programa de 3.10), los desarrolladores aún pueden enviar cambios a la coincidencia de patrones, incluido el PEP 634 aceptado y el PEP 640, 642 rechazado.

Gracias por visitar este sitio, espero que te haya gustado y vuelvas proximamente, compartela en las redes sociales, gracias

Compartir en Facebook Compartir en twitter

Fecha actualización el 2021-02-11. Fecha publicación el 2021-02-11. Categoría: Python Autor: Oscar olg Mapa del sitio Fuente: digistatement