2017-04-07 4 views
8

Nach der Aktualisierung von PyCharm auf 2017.1, erschien eine neue Inspektionswarnung an einem Ort, wo alles scheinbar einfach und korrekt ist. Es sieht aus wie folgt:PyCharm - Erwarteter Typ 'Optional [IO [str]]', bekam 'TextIOWrapper [str]' statt

Screenshot

es wie open() sieht gibt nicht den erwarteten Typen für file Parameter, aber der Code ist ziemlich einfach und, was am wichtigsten ist, funktioniert wie erwartet (mit Python 3.5.2).

Python docs einen Weg StringIO mit erwähnen und es entfernt die Warnung in der Tat, aber ist es die richtige Art und Weise pythonic Ausgabestrom angeben, für print? Wenn ja warum? Ist diese Warnung wichtig zu folgen?

+2

Es ist ein bekanntes Problem [link] (https://youtrack.jetbrains.com/issue/PY-23288) –

Antwort

3

Die einzige Lösung, die ich gefunden ist richtig Hinweis PyCharm eingeben:

with open('output_filename', 'w') as f: # type: Optional[IO[str]] 
    print('some text to go to the file...', file=f) 

Dies hält PyCharm glücklich und in keiner Weise den korrekten Ablauf des Codes behindern.

Verwandte Themen