Typ Hinweise sind jetzt in der Python 3.5-Version verfügbar. In der Beschreibung (PEP 484) die Ziele (und die Nicht-Ziele) sind klar ausgesetzt:Verwenden von Typhinweisen zum Konvertieren von Python in Cython
Rationale und Tore
Dieser PEP eine Standardsyntax für Typenannotationen bieten soll, die Öffnung Python-Code um leichtere statische Analyse und Refactoring, potentielle Laufzeittypüberprüfung und (möglicherweise in einigen Kontexten) Codegenerierung unter Verwendung von Typinformation. [...]
Von diesen Zielen ist die statische Analyse am wichtigsten.
Nicht Ziele
Mit Typ Hinweise für Performance-Optimierungen wird für den Leser als Übung.
Auf der anderen Seite, für eine lange Zeit statisch Syntax zur Verbesserung der Leistung Cython wurde. Üblicherweise schreiben einige Teile ihres Codes mit Cython-Syntax um, kompilieren sie und importieren sie dann als unabhängige Module zurück. Es ist eine schmerzhafte Aufgabe, all das auf einer großen Codebasis zu tun. Aber das Schlimmste ist, dass Sie selbst dann, wenn Sie alle oben genannten Schritte richtig befolgen, keine Garantie haben, dass Sie eine echte Verbesserung erfahren (aufgrund von Kompatibilitätsproblemen, die bei Verwendung einiger Module auftreten können).
Wäre eine schwierige Aufgabe, ein Tool schreiben, die diese neue Art verwendet Hinweise Dinge im Code verstreut automatisch übersetzen sie in Cython Syntax und möglicherweise den Rest der Arbeit tun (kompilieren sie in Module und importieren Sie alle sie zurück)? Es wäre daher möglich, die gleiche Sprachensyntax in der gesamten Codebasis zu verwenden.
Theoretisch ist es möglich, ein Tool wie das zu schreiben, aber ich bin mir nicht sicher, ob es wert ist (in Bezug auf Komplexität, es zu schreiben und die wirkliche Verbesserung, die Ausbeute wäre).
Danke.
Wenn Sie 'Cython' verwendet haben, wie viel des Python-Codes haben Sie konvertiert? Ich dachte, das Ideal wäre es, sich auf eine Teilmenge zu konzentrieren, bei der die Geschwindigkeit zählt, und den Rest in Python zu belassen. Oder verwenden Sie 'cython' als Brücke zu bestehendem C++/Fortran-Code. – hpaulj
Ich stimme dir teilweise zu. Aber ich denke, es wäre so besser, eine einheitliche Syntax zu haben. Aber es ist in Ordnung, wie @hpaulj sagte, mein Thema ist nicht für Stackoverflow. Es tut uns leid. – GustavoIP