FANDOM


A Python nyelv legelterjedtebb, kanonikus implementációja a C nyelven írt CPython. (A linkre kattintva tájékozódhatunk a többi implementációról és a támogatott platformokról is.) A C betűt a névben csak akkor használják, ha kifejezetten meg kell különböztetni más implementációktól (pl. a Javában fejlesztett Jythontól), egyébként csak Pythonként említik. (A CPythont ne keverjük össze a Cython kiegészítéssel!) Érdekes lehet még a .NET keretrendszerre tervezett IronPython implementáció is.

A Pythonnak jelenleg (2010 novemberében) két legfrissebb stabil verziója van. Miközben évek óta fejlesztik a 3.x sorozatot, néhány újdonságát visszamenőleg beépítették a 2.x-be is, és annak is újabb verziói jöttek ki. (A 2.6 a 3.0, a 2.7 pedig a 3.1 verzióból vett át új fejlesztéseket.) A legfrissebb stabil verziók:

  • 3.1.2 (2010. március 21.)
  • 2.7 (2010. július 3.)

A 2.7 változattal befejeződött a 2.x sorozat fejlesztése, de a tervek szerint a szokásosnál hosszabb ideig fog támogatást kapni. (Ennek konkrét tartalmát nem határozták meg.) A 3.2 2010 novemberében alfaváltozatban van, stabil kiadását 2011. február 5-ére tervezik. Előkészületben van két kisebb fejlesztés, a 3.1.3 és a 2.7.1 is. A készülő verziók aktuális állapota a http://python.org/doc/ lap bal alsó sarkában, a Release Schedule cím alatt látható.

A pendrive-ra telepíthető Portable Python jelenleg a 2.6.1 és a 3.0.1 változatokhoz érhető el.

A kettes és a hármas változat összehasonlításaSzerkesztés

A 3.0 verzió Python 3000 avagy Py3K néven is ismert. Ez a név kitalálásának idején a távoli jövőre utalt.

A fő verziószám arra utal, hogy a 3.x sorozat inkompatibilis a 2.x-szel, vagyis a korábbi programokat részben át kell írni rá. Éppen ezért (a világban futó Python-programok sokaságára való tekintettel) folytatták a 2.x sorozat fejlesztését a 3.x-szel párhuzamosan. A hármas verzióhoz egy automatikus konvertálóprogramot is mellékeltek 2to3 néven. Az újítások egy részét a 2.6–2.7 verzióba is átvezették, hogy az átállás zökkenőmentesebb legyen.

Guido van Rossum döntése alapján a nyelv tisztasága érdekében első ízben adták fel a visszamenőleges kompatibilitást. A változások nem érintik a nyelv alapjait, csak következetesebbé teszik (a print utasítás például print() függvénnyé változott), és tovább erősítik szigorú típusosságát. Az 1 < '' összehasonlítás így hamis érték helyett kivételt dob. Csak egyetlen beépített egész típus maradt, az int, amely azonban a régi long-nak felel meg (és tetszőlegesen nagy egész számokat tud ábrázolni).

A 3.0 verzió a Unicode-ot teszi a szövegkezelés alapjává (nincs többé bevezető u betű a stringek előtt), és bevezet egy bytes típust a 8 bites értékekből álló karakterláncok (köztük a kódolt Unicode-szövegek) számára; a kettő azonban nem keveredhet tisztességes konverzió nélkül. A „text” elnevezés tehát Unicode szövegekre, a „data” 8 bites karakterekből álló sorozatokra utal. (A 3.2 alfaverzió leírásából úgy tűnik, itt még vannak javítás alatt álló hibák.) Figyeljünk tehát oda, hogy Windowsban a jegyzettömbbel írt programszövegek mentésekor mindig ki kell választani az UTF-8 kódolást![1] Mellékhatásként a változók és függvények nevében is lehet ékezet (persze csak akkor használjuk, ha biztosak vagyunk benne, hogy a kódunk nem kerül ki a magyar nyelvi környezetből!).

A 3.0 verzió kezdetben lassabb futást eredményezett, mint a forgalomban levő 2.x-es kód, de ezt a fejlesztések során folyamatosan javítják. Ugyanakkor sokan ódzkodnak az áttéréstől, mert a megszokott kiegészítő moduljaiknak csak egy része van még átírva 3.x-re, és nem mindent tudnak elérni, amit korábban használtak. A kezdőket ez a probléma nem érinti, és hangsúlyozandó, hogy a nyelv magja és a standard könyvtár bőségesen elegendő az érettségi szintjéhez! (Jellemzően egyáltalán nincs szükség importálásra.) Mivel a 3.0-1 verzió újdonságait backportolták a 2.6-7-be, az ilyen problémával küszködők számára jó ötlet lehet 3.x-es szintaktikájú programokat írni, és 2.7 alatt futtatni azokat.

Összességében nem látszik semmi ok rá, hogy a nyelvvel most ismerkedők a 2.x változatot válasszák, vagy ennek az elterjesztésére törekedjünk a közoktatásban. Számítsunk azonban arra, hogy a régebbi könyvekben talált vagy az internetről begyűjtött kódok részben elavultak lehetnek, és módosításra szorulhatnak. (Ez ne szegje senki kedvét, a nyelvtanításból sem száműzték a németet a helyesírási reform miatt.) Ha ilyen problémába ütközünk, a lenti „What's New?” dokumentumok, valamint a Verziók felismerése és átalakítása szócikk tanulmányozása segíthet.

Felülről való inkompatibilitás tehát egyetlen esetben léphet fel: ha 2.x verzióban készült programot 3.x alatt próbálunk futtatni (azonban ebben az esetben sem feltétlenül fog fellépni, ha a program 2.6–2.7 verzióban készült, és a szerző odafigyelt a kompatibilitásra).

Lásd mégSzerkesztés

OlvasmányokSzerkesztés

MegjegyzésSzerkesztés

  1. A jegyzettömb új UTF-8 szövegek mentésekor egy BOM jelet helyez el a file elején, amit sok program sérelmezni fog, illetve adatállományok esetén hibás beolvasást eredményezhet. Célszerűbb a Notepad2 vagy a Notepad++ használata, ha valaki nem az IDLE-vel akar menteni.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

A Wikia-hálózat

Véletlen wiki