infer - python type hints
Anotación de devolución de anulación de Python (1)
En Python 3.x, es común usar la anotación de tipo de retorno de una función, como por ejemplo:
def foo() -> str:
return "bar"
¿Cuál es la anotación correcta para el tipo "vacío"?
Estoy considerando 3 opciones:
-
def foo() -> None:
- no es lógico IMO, porque
None
no es un tipo,
- no es lógico IMO, porque
-
def foo() -> type(None):
- usando la mejor sintaxis que conozco para obtener
NoneType
,
- usando la mejor sintaxis que conozco para obtener
-
def foo():
- omita información explícita del tipo de devolución.
La opción 2. parece ser la más lógica para mí, pero ya he visto algunas instancias de 1.
Esto es directamente de PEP 484 - Documentación de tipo Sugerencias :
Cuando se utiliza en una sugerencia de tipo, la expresión
None
se considera equivalente altype(None)
.
Y, como puede ver en la mayoría de los ejemplos, use None
como tipo de devolución.