Capítulo 13. Protocolos
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Tengo que confesarte algo. He estado eludiendo algo del sistema de tipos de Python que, a primera vista, es contradictorio. Tiene que ver con una diferencia clave de filosofía entre el sistema de tipos en tiempo de ejecución de Python y las sugerencias de tipos estáticos.
En el Capítulo 2 describí cómo Python admite la tipificación de patos. Recuerda que esto significa que puedes utilizar objetos en un contexto siempre que ese objeto soporte un conjunto específico de comportamientos. No necesitas ningún tipo de clase padre o estructura de herencia predefinida para utilizar la tipificación pato.
Sin embargo, el verificador de tipos no tiene ni idea de cómo manejar la tipificación duck sin ninguna ayuda. El verificador de tipos sabe cómo manejar los tipos conocidos en tiempo de análisis estático, pero ¿cómo maneja las decisiones de tipado duck tomadas en tiempo de ejecución?
Para remediarlo, voy a introducir los protocolos, una característica introducida en Python 3.8. Los protocolos resuelven la contradicción anterior: anotan las variables de tipo pato durante la comprobación tipográfica. Explicaré por qué necesitas protocolos, cómo definir los tuyos propios y cómo utilizarlos en situaciones avanzadas. Pero antes de empezar, debes comprender la desconexión entre la tipificación de pato de Python y los verificadores estáticos de tipos.