PROGRAMACIÓN EN PITÓN
Las interfaces de funciones en Python se pueden implementar mediante sugerencias de tipo y protocolos.
Si bien Python no ofrece interfaces en el sentido comúnmente conocido en otros lenguajes de programación, sí ofrece funcionalidades similares. Los tradicionales son clases base abstractas (ABC), disponible a través del abc módulo. Mas tarde, escriba sugerencias y protocolos de mecanografía (typing.Protocol) fueron agregados.
Las clases base abstractas (ABC) y los protocolos de escritura sirven como mecanismos de Python para definir estructuras y comportamientos esperados de las clases, similares a las interfaces en otros lenguajes de programación. Aunque Python en sí no utiliza formalmente el término “interfaz” para describir esta funcionalidad, el concepto está muy en línea con lo que ofrecen los “protocolos” de Python. De hecho, el término “protocolo” se había utilizado en Python para describir interfaces mucho antes. typing.Protocol fue agregado al módulo de mecanografía. Por lo tanto, la naturaleza dinámica de Python permite la creación de interfaces dinámicas, mientras que las sugerencias de tipo y los protocolos de escritura facilitan la especificación de interfaces desde una perspectiva de verificación estática. Discutiremos esto en este artículo.
Las clases base abstractas y los protocolos de escritura generalmente se consideran en el contexto de la creación de clases personalizadas: puede crear una clase base abstracta o un protocolo cuando necesita que el usuario implemente una clase con alguna estructura y comportamiento esperados. Si bien los ABC funcionan únicamente con clases, los protocolos de mecanografía ofrecen algo que los ABC no ofrecen: interfaces de funciones.
Python originalmente no ofrecía herramientas dedicadas para crear interfaces de funciones. Esto cambió con la adición de sugerencias de tipo, y ahora podemos crear interfaces de funciones de dos maneras: a través de escriba sugerencias y protocolos de mecanografía.
Las sugerencias de tipo Python permiten especificar los tipos esperados de parámetros de función y valores de retorno. ¿Y qué especifica una interfaz de función? ¿No especifica los tipos esperados de parámetros de función y valores de retorno? Es por eso que la firma de una función con sugerencias de tipo puede considerarse una forma de interfaz de función.
Las sugerencias de tipo Python no proporcionan directamente el mismo nivel de especificación de interfaz para las clases que para las funciones, por lo que no funcionan de la misma manera para las clases y…