Heim >Backend-Entwicklung >Python-Tutorial >Gemeinsame Nutzung mehrerer Python-Typprüfungstools
Der Inhalt dieses Artikels befasst sich mit der Weitergabe mehrerer Python-Typprüfungstools. Ich hoffe, dass er für Freunde hilfreich ist.
Vor Kurzem hat Microsoft ein Open-Source-Tool zur statischen Typprüfung von Python auf Github veröffentlicht: pyright
, das in der Community große Aufmerksamkeit erregt hat.
Microsoft engagiert sich immer mehr in Open-Source-Projekten, ganz zu schweigen von den großen strategischen Ambitionen, Github zu erwerben, sein Open-Source-VS-Code-Editor hat bereits unzählige Fans in der Affenwelt angezogen. Eine Berühmtheit in unserem Python-Kreis (der Autor mehrerer Open-Source-Projekte, einschließlich Requests, Requests-HTML, Responder usw.) ist voll des Lobes dafür.
Pyright, jetzt Open Source, hat einen guten Ruf, also werfen wir einen Blick auf seine Fähigkeiten und stellen nebenbei noch einige andere Tools zur Typprüfung vor.
Wie wir alle wissen, ist Python eine dynamisch typisierte Sprache und der tatsächliche Typ der Variablen ist erst zur Laufzeit bekannt. Dies ist das Merkmal dynamischer Sprachen. Bei Teamarbeit oder Großprojekten sind jedoch die Kosten für die Wartung unvermeidlich. Wie das Sprichwort sagt: „Dynamik macht eine Weile Spaß, aber der Wiederaufbau ist ein Krematorium.“ .
Bereits mit PEP-3107 im Jahr 2006 führte Python die Funktion Annotation ein, die schließlich in Version 3.0 implementiert wurde. In Version 3.5 führte Python weiterhin die statische Typprüfungssyntax ein (z. B. PEP-484, Typhinweise). Im PEP-483 von 2014 wurde sogar eine theoretische Zusammenfassung unter dem Titel „The Theory of Type Hints“ erstellt. Später wurden nacheinander PEP-526 und PEP-544 vorgeschlagen und die Spezifikationen für die Typprüfung schrittweise erweitert. Der Vorteil der Typprüfung besteht darin, frühzeitig zu prüfen, Typfehler im Voraus zu erkennen und die Konsistenz und Wartbarkeit des Codes zu verbessern. (Es verhindert auch Haarausfall, Miauen)# 不加检查 def greeting(name): return 'Hello ' + name # 添加检查 def greeting(name: str) -> str: return 'Hello ' + nameWie im obigen Beispiel gezeigt, kann nach dem Hinzufügen von Prüfungen zur Kompilierungszeit festgestellt werden, ob die Eingabeparameter und Rückgabewerte vom Typ String sind. Bevor Microsoft pyright auf den Markt brachte, gab es drei gängige Tools zur statischen Überprüfung: das offizielle
, das mypy
von Google und das pytype
von Facebook. Die Dreibeinsituation steht kurz vor dem Bruch. pyre-check
Typeshed
Fehlerrauschunterdrückung“. “ , für Fehler, die nicht geändert werden müssen, können Kommentare hinzugefügt werden, um eine Typprüfung zu vermeiden.
Darüber hinaus gibt es eine weitere gute Überlegung, andere Module in das Modul einzuführen. Für letzteres gibt es eine Möglichkeit, es auszublenden und nur bei der Typprüfung zu laden . Abschließend möchte ich Facebooks Pyre-Check vorstellen, der letztes Jahr als Open Source verfügbar war und viel Lob erhalten hat (vielleicht hat Microsoft deshalb das Pyrright-Projekt ins Leben gerufen). Die Grundfunktionen sind ähnlich, aber es hat auch seine Highlights. Pyre-Check kann das Watchman-Modul integrieren. Dieser „Beobachter“ überwacht die Codedatei und verfolgt die Änderungen. Microsofts Pright verfügt über einen Überwachungsmodus, der dies hätte absorbieren und die Verwendung erleichtern sollen (da Watchman und andere Abhängigkeiten nicht zusätzlich installiert werden müssen).Pyre-Check verfügt auch über einen Abfrageparameter, der lokale und regionale Prüfungen des Quellcodes durchführen kann, z. B. die Abfrage des Typs eines Ausdrucks in einer bestimmten Zeile, die Abfrage aller Methoden einer Klasse und die Rückgabe B. als Liste usw. usw. Dadurch entfällt die Notwendigkeit einer umfassenden Prüfung.
Die vier Typprüfungstools wurden vorgestellt:
Was ihre Leistung betrifft, entspricht sie wirklich dem, was der Urheberrechtsinhaber gesagt hat die Geschwindigkeit fünfmal so hoch wie die der anderen? Interessierte Studierende können es ausprobieren. Wenn Sie Erfahrung damit haben, hinterlassen Sie bitte eine Nachricht, um mit mir zu kommunizieren.
Projektadresse:
https://github.com/python/mypy, https://github.com/Microsoft/pyright, https://github .com/google/pytype, https://github.com/facebook/pyre-check
Dieser Artikel ist hier zu Ende. Weitere spannende Inhalte finden Sie auf der chinesischen PHP-WebsitePython-Video Tutorial Kolumne!
Das obige ist der detaillierte Inhalt vonGemeinsame Nutzung mehrerer Python-Typprüfungstools. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!