Czy jest jakaś poprawna wskazówka dotycząca typu pliku lub obiektu podobnego do pliku w Pythonie? Na przykład, w jaki sposób mógłbym wskazać wartość zwracaną przez tę funkcję?
def foo():
return open('bar')
python
type-hinting
Mark Amery
źródło
źródło
def f() -> IO: return open('test')
podaje „Oczekiwany typ IO”, zamiast tego otrzymuje „TextIOWrapper [str]” w PyCharm.IO[str]
?Krótka odpowiedź:
from typing import TextIO
nie jest sprawiedliwefrom typing import *
.IO
do oznaczania pliku bez określania jego rodzajuTextIO
lubBinaryIO
jeśli znasz typJako przykład:
from typing import BinaryIO def binf(inf: BinaryIO): pass with open('x') as f: binf(f)
daje błąd inspekcji (w PyCharm) wynoszący
Expected type 'BinaryIO', got 'TextIO' instead
źródło