`get_type_hints` occurs NameError only if import `__future__.annotations`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 28/100
Línea de trabajo
Reproduce ambos ejemplos y compara cómo typing.get_type_hints resuelve la anotación de retorno de la función local con y sin future.annotations. Después, inspecciona la implementación de get_type_hints y sus pruebas para los alias genéricos y las anotaciones diferidas; se considera terminado cuando el comportamiento esperado y cualquier workaround compatible estén establecidos en el issue o cubiertos por una prueba de regresión específica.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
from typing import get_type_hints
class A[T]:
def __init__(self, x: T):
self.x = x
def foo(self):
def bar() -> T:
return self.x
print(get_type_hints(bar))
A[int](5).foo()
Output: {'return': T}
from __future__ import annotations # Add this
from typing import get_type_hints
class A[T]:
def __init__(self, x: T):
self.x = x
def foo(self):
def bar() -> T:
return self.x
print(get_type_hints(bar))
A[int](5).foo()
Error:
NameError: name 'T' is not defined
Is this the expected behavior?
Also, is there a way to make it work if __future__.annotations is imported?
- Lenguaje dominante
- Python
- Estrellas
- 1.8k
- Forks
- 302
- Merge medio
- 23 h
- PR fusionados (30 d)
- 8
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de python/typing
-
topic: typing spec
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
topic: typing spec
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
topic: documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
topic: documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
topic: conformance tests topic: typing spec
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
Todos los issues de python/typing
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
learningequality/ricecooker#747 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
BSData/horus-heresy-3rd-edition#3171 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
run-llama/llama_index#23199 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
KhronosGroup/glTF-Blender-IO#2769 ·