Frage

Ich habe nicht wirklich das Konzept des „Bytecode-Interpreter“ im Zusammenhang mit der CPython. Kann jemand etwas Licht über das ganze Bild vergießen?

Bedeutet es, dass CPython kompiliert und pyc Datei ausführen (Bytecode-Datei?). Was dann py-Datei pyc Datei kompilieren? Und wie ist Jython unterscheidet sich von CPython (außer sie in verschiedenen Sprachen durchgeführt werden).

ich auch irgendwo gelesen, dass Python ist C ++ Interpretation. Ist das richtig? Und was bedeutet das?

Ich bin immer noch sehr neu auf Python, so verzeihen Sie mich, wenn ich die dummen Fragen stellen ... Vielen Dank!

War es hilfreich?

Lösung

CPython ist die Implementierung von Python in C. Es ist die erste Implementierung, und nach wie vor das wichtigste, die Leute meinen, wenn sie über Python zu sprechen. Es kompiliert Py Dateien Dateien .pyc. .pyc Dateien enthalten Bytecode. Die CPython Implementierung interpretiert auch diese Bytecode. CPython ist in C ++ geschrieben, es ist C.

Die Zusammenstellung von Py zu .pyc geschieht transparent je nach Bedarf. Wenn Sie eine Py-Datei ausführen, wird es zunächst zu einer .pyc Datei kompiliert werden, wenn nötig, dann wird die .pyc Datei interpretiert werden.

Jython ist anders, weil (zusätzlich zu anstelle von C in Java implementiert ist) es Dateien in .class-Dateien kompiliert Py so können sie in der JVM ausgeführt werden.

Andere Tipps

Erstens: Die Tatsache, dass CPython ein Bytecode-Interpreter ist, sollte nicht als Benutzer von Python für Sie. Gehen Sie weiter und schreiben Code, und mach dir keine Sorgen darüber, wie es in die Tat umgesetzt wird.

Also, Ihre Frage zu beantworten und Ihre Neugier zu befriedigen, hier ist etwas passiert: CPython liest Python-Quellcode und kompiliert es in Python-Bytecode, der in der .pyc Datei gespeichert ist. Es führt dann diesen Code ein Bytecode-Interpreter. Dieser Entwurf trennt das Parsen von Python aus der Ausführung, beide Teile des Interpreter erlaubt einfacher.

Jython ist nur die vordere Hälfte - es Python Quelle liest und gibt Java-Bytecode, der von der JVM dann interpretiert werden. Es ist die gleiche Architektur wie CPython, mit zwei bemerkenswerten Unterschieden: Erstens: der Java-Bytecode ist standardisiert und dokumentiert, während der CPython Bytecode Python intern betrachtet wird, und kann jederzeit geändert werden. Zwei: Die JVM ist eine ganze Menge komplizierter als die CPython Dolmetscher. Die JVM verfügt über eine der modernsten JIT-Motoren in der Welt, während die CPython Interpreter ist ziemlich einfach.

CPython ist sowohl die Bytecode-Compiler und Interpreter (virtuelle Maschine).

Es erkennt automatisch, wenn keine vorhandene Pre-Compiler-Datei (.pyc) vorhanden ist, kompiliert den Code und speichert ihn aus.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top