Itt vagy: Kezdőlap Ugorj fejest a Python 3-ba

Az „Ugorj fejest a Python 3-ba” újdonságai

Isn’t this where we came in?
– Pink Floyd, The Wall

 

avagy „a negatív szint”

Már Python programozó vagy? Elolvastad az eredeti Dive Into Python könyvet? Papíron is megvan? (Ha igen, köszönöm!) Készen állsz fejest ugrani a Python 3-ba? … Ha igen, olvass tovább. (Ha ezek egyike sem igaz, akkor inkább kezdd az elején.)

A Python 3 tartalmaz egy 2to3 parancsfájlt. Tanuld meg. Szeresd. Használd. A kód Python 3-ba konvertálása a 2to3 használatával fejezet a 2to3 eszközzel automatikusan javítható dolgok referenciája. Mivel ezek zöme szintaxisváltozás, jó kiindulópont a Python 3 szintaxisváltozásainak megismeréséhez. (A print mostantól függvény, az `x` nem működik stb.)

Az Esettanulmány: a chardet Python 3-a portolása dokumentálja a (végül sikeres) erőfeszítéseimet egy nem triviális programkönyvtár Python 2-ről Python 3-ra portolására. Talán segít, talán nem. A tanulási görbe viszonylag meredek, mivel nagyjából meg kell értened a programkönyvtár működését, így megértheted, hogy miért romlott el, és hogyan javítottam ki. A hibák jó részét a karakterláncok okozzák. Ha már itt tartunk…

Karakterláncok. Jaj. Hol kezdjem? A Python 2-ben voltak „karakterláncok” és „Unicode karakterláncok”. A Python 3-ban „bájtok” és „karakterláncok” vannak. Ez minden, mostantól minden karakterlánc Unicode karakterlánc, és ha egy kupac bájttal akarsz dolgozni, akkor használd az új bájt típust. A Python 3 soha nem fog implicit módon konvertálni a karakterláncok és bájtok között, így ha nem vagy biztos benne, hogy adott pillanatban épp melyiket kezeled, akkor a kód majdnem biztosan hibásan fog működni. További részletekért olvasd el a Karakterláncok fejezetet.

A bájtok vs. karakterláncok probléma a könyvben újra és újra előkerül.

Még ha nem is érdekel a Unicode (majd fog), akkor is olvasd el a karakterláncok formázása Python 3-ban részt, ami teljesen eltér a Python 2-től.

Az iterátorok mindenütt előfordulnak a Python 3-ban, és sokkal jobban értem azokat, mint öt éve, amikor a „Dive Into Python” című könyvet írtam. Neked is meg kell értened ezeket, mert rengeteg függvény, amely a Python 2-ben listákat adott vissza, Python 3-ban iterátorokat fog visszaadni. Az Iterátorok fejezet második felét és a Speciális iterátorok fejezet második felét mindenképp olvasd el, ez a minimum.

Közkívánatra készítettem egy függeléket a Speciális metódusnevekről, amely nagyjából olyan, mint a Python dokumentáció „Data Model” (adatmodell) fejezete, csak kicsit több szarkazmussal.

Amikor a „Dive Into Python” című könyvet írtam, az összes elérhető XML függvénytár bűn rossz volt. Ezután Fredrik Lundh megírta az ElementTree-t, ami egyáltalán nem rossz. A Python istenek bölcsen beépítették az ElementTree-t a szabványos függvénytárba, és most az új XML fejezetem alapját képezi. Az XML-feldolgozás régi módszerei továbbra is elérhetők, de kerüld őket, mert rosszak!

A Python – nem a nyelv, hanem a közösség –  újdonsága az olyan kódtárolók megjelenése, mint a The Python Package Index (PyPI). A Python olyan segédprogramokat tartalmaz, amelyekkel a kódod szabványos formátumokba csomagolhatod, és ezeket a csomagokat a PyPI közvetítésével terjesztheted. A részletekért olvasd el a Python függvénytárak csomagolása fejezetet.

© 2001–11 Mark Pilgrim