Есть ли какая-нибудь подсказка о правильном типе файла или файлового объекта в Python? Например, как мне набрать возвращаемое значение этой функции?
def foo():
return open('bar')
python
type-hinting
Марк Эмери
источник
источник
def f() -> IO: return open('test')
дает «Ожидаемый тип 'IO', вместо этого получил 'TextIOWrapper [str]'» в PyCharm.IO[str]
?Краткий ответ:
from typing import TextIO
не просто такfrom typing import *
.IO
для обозначения файла без указания типаTextIO
или,BinaryIO
если вы знаете типНапример:
from typing import BinaryIO def binf(inf: BinaryIO): pass with open('x') as f: binf(f)
выдает ошибку проверки (в PyCharm)
Expected type 'BinaryIO', got 'TextIO' instead
источник