Gibt es einen richtigen Typhinweis für eine Datei oder ein dateiähnliches Objekt in Python? Wie würde ich beispielsweise den Rückgabewert dieser Funktion eingeben?
%Vor% Verwenden Sie entweder die Typen typing.TextIO
oder typing.BinaryIO
für Dateien, die im Textmodus bzw. im Binärmodus geöffnet sind.
Von den Dokumenten :
Klasse
typing.io
Wrapper-Namespace für E / A-Datenstromtypen.
Dies definiert den generischen Typ
IO[AnyStr]
und die AliaseTextIO
undBinaryIO
für jeweilsIO[str]
undIO[bytes]
. Diese repräsentieren die Arten von E / A-Strömen, wie sie vonopen()
zurückgegeben werden.
Für diejenigen, die mit Typhinweisen in Python 3 nicht vertraut sind und nach dem schnellen Beispiel suchen. Entweder das:
%Vor%oder als allgemeine empfehlenswerte Empfehlung (obwohl für diesen speziellen Fall nicht erforderlich):
%Vor% Der zweite Ansatz würde es vermeiden, die Klasse während der Ausführung zu importieren. Obwohl Python während der Ausführung immer TYPE_CHECKING
importieren muss, ist es eine allgemeine gute Praxis , das Importieren von Klassen nur für Typhinweis zu vermeiden: (1) wird nicht ausgeführt (nur analysiert), und ( 2) es könnte zyklische Importe vermeiden. Obwohl es für diesen speziellen Fall nichts anderes hinzufügt , ist es immer am besten, sich daran zu gewöhnen und zukünftige Probleme zu vermeiden.
Beachten Sie, dass im zweiten Approch den Klassennamen 'TextIO'
erfordert
Tags und Links python type-hinting