Geben Sie einen Hinweis für eine Datei oder ein dateiähnliches Objekt ein?

8

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%     
Mark Amery 25.07.2016, 13:42
quelle

2 Antworten

11

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 Aliase TextIO und BinaryIO für jeweils IO[str] und IO[bytes] . Diese repräsentieren die Arten von E / A-Strömen, wie sie von open() zurückgegeben werden.

    
Wayne Werner 25.07.2016, 13:48
quelle
-1

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

    
toto_tico 17.01.2018 13:18
quelle

Tags und Links