Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

169
Vistas
de __future__ anotaciones de importación

Python doc __future__

En python doc sobre __future__ hay una tabla a continuación donde se muestra que las anotaciones son "opcionales en" 3.7.0b1 y "obligatorias en" 4.0 pero todavía puedo usar anotaciones en 3.8.2 sin importar anotaciones, entonces ¿de qué sirve? .

 >>> def add_int(a:int, b:int) -> int: ... return a + b >>> add_int.__annotations__ {'a': <class 'int'>, 'b': <class 'int'>, 'return': <class 'int'>}

Dudo que no entienda claramente el significado de "opcional en" y "obligatorio en" aquí

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Obligatorio es una interesante elección de palabras. Supongo que significa que está por defecto en el idioma. No tiene que habilitarlo con from __future__ import annotations

La función de annotations hace referencia al PEP 563: Evaluación pospuesta de anotaciones. Es una mejora de la función de anotaciones existente que se introdujo inicialmente en python 3.0 y se redefinió como sugerencias de tipo en python 3.5, por eso su código funciona en python 3.8.

Esto es lo que opcional from __future__ import annotations en python 3.7+:

 class A: def f(self) -> A: # NameError: name 'A' is not defined pass

pero esto funciona

 from __future__ import annotations class A: def f(self) -> A: pass

Vea este capítulo en python 3.7 qué hay de nuevo sobre las anotaciones pospuestas:

Dado que este cambio rompe la compatibilidad, el nuevo comportamiento debe habilitarse por módulo en Python 3.7 usando una importación __future__ :

from __future__ import annotations

Se convertirá en el predeterminado en Python 3.10*.

* se anunció que sería predeterminado en 3.10 (cuando se lanzó python3.7), pero ahora se movió a una versión posterior

over 4 years ago · Santiago Trujillo Denunciar

0

Obligatorio como viene por defecto. Opcional, ya que es necesario que se "active" desde una declaración from __future__ import annotations

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda