Então, minha pergunta é sobre um código que se parece com isso:
def f(condition: bool) -> int | None:
if condition:
return 1
def g(condition: bool) -> int | None:
if condition:
return
return 1
Este é claramente um código python válido, a ideia é que a função tentará fazer algo, se tiver sucesso retornará o resultado, mas se falhar retornará Nenhum
Meu problema é que o mypy reclama com o seguinte erro:
1: error: Missing return statement [return]
7: error: Return value expected [return-value]
Agora, o Python sempre retornará implicitamente None quando uma função não tiver uma instrução return, que é o que estou usando na minha função.
Minha pergunta é: existe alguma opção no mypy para (com alterações mínimas ou nenhuma alteração no código) dizer para ele parar de reclamar sobre esse código válido?
Para esclarecer, eu ainda gostaria que ele reclamasse sobre esse código:
def f(condition: bool) -> int:
if condition:
return 1
def g(condition: bool) -> int:
if condition:
return
return 1
Forneça uma declaração explícita
return
quando aif
declaração não corresponder na primeira função e explicitamentereturn None
na segunda função:violino
Se você quiser silenciar o primeiro erro sem alterar o código, você pode usar a
--no-warn-no-return
opção.Se você quiser silenciar localmente o
return
erro na linha 1 e oreturn-value
erro na linha 7, você pode usar:(Mas é menos difícil digitar para fornecer
None
valores de retorno explícitos.)