¿Hay alguna sugerencia de tipo correcto para usar para un archivo o un objeto similar a un archivo en Python? Por ejemplo, ¿cómo escribiría-insinuaría el valor de retorno de esta función?
def foo():
return open('bar')
python
type-hinting
Mark Amery
fuente
fuente
def f() -> IO: return open('test')
da "Tipo esperado 'IO', obtuvo 'TextIOWrapper [str]' en su lugar" en PyCharm.IO[str]
?La respuesta corta:
from typing import TextIO
no es justofrom typing import *
.IO
para referirse a un archivo sin especificar de qué tipoTextIO
oBinaryIO
si conoce el tipoComo ejemplo:
from typing import BinaryIO def binf(inf: BinaryIO): pass with open('x') as f: binf(f)
da un error de inspección (en PyCharm) de
Expected type 'BinaryIO', got 'TextIO' instead
fuente