Was bedeutet "i" in Python in der Erweiterung .pyi?
In PEP-484 wird erwähnt, dass .pyi "eine Stub-Datei" ist, aber keine mnemonische Hilfe für die Erweiterung. Bedeutet das "i" also "Include"? "Implementierung"? "Schnittstelle"?
Was bedeutet "i" in Python in der Erweiterung .pyi?
In PEP-484 wird erwähnt, dass .pyi "eine Stub-Datei" ist, aber keine mnemonische Hilfe für die Erweiterung. Bedeutet das "i" also "Include"? "Implementierung"? "Schnittstelle"?
pyi.
Antworten:
Ich denke das iin .pyisteht für "Interface"
Definition für Schnittstelle in Java :
Eine Schnittstelle in der Programmiersprache Java ist ein abstrakter Typ, mit dem ein Verhalten angegeben wird, das Klassen implementieren müssen
Jedes Python-Modul wird durch einen
.pyi"Stub" dargestellt. Dies ist eine normale Python-Datei (dh sie kann von Python 3 interpretiert werden), außer dass alle Methoden leer sind .
Eine Stubs-Datei enthält nur eine Beschreibung der öffentlichen Schnittstelle des Moduls ohne Implementierungen.
Da "Interfaces" in Python nicht existieren (siehe diese SO-Frage zwischen Abstract-Klasse und Interface ), wollten die Designer meiner Meinung nach eine spezielle Erweiterung dafür reservieren.
pyiimplementiert "stub" -Datei (Definition von Martin Fowler )
Stubs : Geben Sie vordefinierte Antworten auf Anrufe, die während des Tests getätigt wurden, und reagieren Sie normalerweise überhaupt nicht auf etwas außerhalb der für den Test programmierten.
Die Benutzer sind jedoch mit Schnittstellen besser vertraut als mit "Stub" -Dateien. Daher war es einfacher, eine Auswahl zu .pyitreffen, als .pysunnötige Verwirrung zu vermeiden.
Anscheinend erstellt PyCharm eine .pyi-Datei für eigene Zwecke:
Die * .pyi-Dateien werden von PyCharm und anderen Entwicklungstools verwendet, um mehr Informationen bereitzustellen, z. B. Hinweise zum Typ PEP 484, als durch die Selbstbeobachtung von Erweiterungstypen und -methoden gewonnen werden können. Sie dürfen nicht importiert, ausgeführt oder für andere Zwecke als die Bereitstellung von Informationen für die Tools verwendet werden. Wenn Sie kein Tool verwenden, das .pyi-Dateien verwendet, können Sie diese Datei ignorieren.
Siehe: https://www.python.org/dev/peps/pep-0484/ https://www.jetbrains.com/help/pycharm/2016.1/type-hinting-in-pycharm.html
Dieser Kommentar wurde gefunden in: python27/Lib/site-packages/wx/core.pyi
Das iin .pyisteht für 'interface'.
Die .pyiErweiterung wurde erstmals in diesem GitHub-Thread erwähnt, in dem JukkaL sagt:
Ich würde wahrscheinlich eine Erweiterung mit nur einem Punkt bevorzugen. Es muss auch etwas sein, das nicht verwendet wird (es sollte nicht von Cython usw. verwendet werden). .pys scheint in Windows verwendet zu werden (oder war). Vielleicht .pyi, wo ich für eine Schnittstellendefinition stehe?
pyiErweiterung für Cognos-Modelldateien verwendet. Möglicherweise sehen Sie sich einepycDatei mit einer anderen Erweiterung an, nämlich Python Script Compiled. Versuchen Sie, die Prüfsummen mit einer tatsächlichenpycDatei zu vergleichen, und Sie wissen, dass es sich mindestens um eine Binärdatei handelt.