Python Type Insinting sin importaciones cíclicas
Problem:
Módulos de importación con dependencias cíclicas que introduce un tiempo de ejecución cuando se usa en el tipo en conjuntos de mezcla de mezcla clases.
Detalles:
en Python 3.4, una clase se divide en dos archivos (main.py y mymixin.py), Mymixin.py contiene una clase de mixin que hereda de la clase principal en Main.py (i.e., class (Object, MyMixin) :). Escriba Insinting en los métodos de MyMixin requiere especificar el tipo de retorno como 'principal', lo que lleva a un problema de importación cíclica.
Python 3.4 Solución:
para evitar la importación cíclica mientras sugiere tipo, se emplea un enfoque personalizado que usa una descripción de reenvío. Al usar la constante 'type_checking' desde el módulo 'tipificación', la declaración de importación dentro del bloque de anotación de tipo se ignora durante el tiempo de ejecución. La anotación de tipo 'principal' también se convierte en una cadena para que se dirija hacia adelante. Cleaner.
A pesar de estas soluciones, el uso de mezclas con insinuar el tipo aún puede requerir una reestructuración para garantizar que la verificación de tipo Pycharm y Mypy funcione como se esperaba. Mypy recomienda crear un ABC a partir del cual heredan las clases principales como las de mezcla.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3