Le code suivant est rejeté par mypy
comme prévu :
def foo(value: int) -> None:
print(value, type(value))
foo(None)
sortie :
error: Argument 1 to "foo" has incompatible type "None"; expected "int"
Mais après avoir introduit un paramètre par défaut de None
il n'y a plus d'erreur :
def foo(value: int=None) -> None:
print(value, type(value))
foo(None)
Je m'attendrais mypy
pour n'autoriser que None
(en tant qu'argument et par défaut) si nous modifions value
de int
a Optional[int]
mais il semble que cela ne soit pas nécessaire. Pourquoi ?