Python interpreter (tsz. Python interpreters)
Egy interpreter olyan program, amely egy másik program (pl. Python kód) utasításait sorosán olvassa be, értelmezi, és hajtja végre.
Ez különbözik a fordító (compiler) működésétől, amely előre lefordítja a teljes programot gépi kódra (pl. C, C++ fordító), és utána futtatja.
print("Hello, World!")
Ha ezt a sort lefuttatod a Python interpreterrel, az interpreter:
Ha telepítetted a Python-t, indíthatod az interpretert így:
$ python3
vagy (egyes rendszereken):
$ python
Megjelenik a Python interaktív mód:
Python 3.11.1 (default, Jan 2023, ...)
on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
A >>>
jel az úgynevezett prompt, itt adhatsz meg Python utasításokat egyenként:
>>> 2 + 2
4
>>> print("Hello")
Hello
Ebben a módban soros végrehajtás történik.
Ha van egy .py
kiterjesztésű fájlod, azt is lefuttathatod:
$ python3 my_script.py
Ilyenkor a Python interpreter beolvassa a fájl teljes tartalmát, és soronként végrehajtja.
A következő lépésekben dolgozik:
.pyc
), ami egy köztes, platformfüggetlen kód.
Forráskód (.py) → Tokenek → Szintaxisfa → Bájtkód (.pyc) → Python Virtual Machine → Eredmény
Nem csak egyféle Python interpreter létezik! Néhány ismert változat:
Interpreter | Leírás |
---|---|
CPython | A “klasszikus” Python interpreter, C nyelven írva. Ez a hivatalos referencia-implementáció. |
PyPy | Nagyon gyors interpreter, Just-In-Time (JIT) fordítást alkalmaz. |
Jython | Python, amely a Java platformon fut (Java Virtual Machine). |
IronPython | .NET környezethez készült Python implementáció. |
MicroPython | Mikrokontrollerekhez optimalizált Python (pl. ESP32, Raspberry Pi Pico). |
A legtöbben CPython-t használják, hacsak nincs különleges teljesítményigény.
Az interpreter interaktív módja remek eszköz:
>>> def square(x):
... return x * x
...
>>> square(5)
25
>>> square(10)
100
Ilyen módon könnyen tesztelhetsz kódot anélkül, hogy külön fájlt írnál.
Néhány hasznos környezeti változó és opció:
__debug__
-hoz kapcsolódó kódot.
Amikor import
-álsz egy modult, a Python interpreter sorrendben végigkeresi az ún. modul keresési útvonalat (sys.path
listában tárolva):
Ha nem találja a modult, ModuleNotFoundError
hiba jön.
A Python interaktív módját néha REPL-nek (Read-Eval-Print Loop) is hívjuk:
Ez a működés az, ami miatt a >>>
után azonnal kapod az eredményt.
✅ Gyors fejlesztési ciklus (nem kell előre fordítani). ✅ Nagyon dinamikus (futás közben is létrehozhatsz típusokat, függvényeket). ✅ Kiváló interaktív használat.
⚠️ Lassabb, mint a lefordított nyelvek (pl. C, C++). ⚠️ A bájtkód csak a Python VM-en futtatható. ⚠️ Nem alkalmas natív gépi kód generálására (kivéve speciális eszközökkel, pl. Cython).
Sok adatkutató és tudós ma Jupyter Notebookot használ Python kód futtatásához.
A Python interpreter a Python nyelv szíve. Ő végzi:
Kétféle módon használhatod:
.py
fájlokból történő programfuttatás.Ha megérted az interpreter működését:
__main__
minta és a modul-importálás sorrendje.