2.42. Összegzés¶
Végigjártad a Python azon részeit, amelyek folyamatosan előkerülnek, amikor szkripteket írsz az OpenMV Cam számára:
A nyelvi alapok – értékek és változók, aritmetika és összehasonlítás, karakterláncok és bájtok, a négy alapvető gyűjtemény (
list,tuple,dict,set), feltételek és ciklusok, függvények definiálása és argumentumaik valamint hatókörük kezelése, osztályok definiálása és az öröklődés használata, kivételek kiváltása és kezelése. Ezek azok a téglák, amelyekből a Python minden más darabja felépül.A strukturális elemek – a kód modulok és csomagok közötti felosztása, a szükséges dolgok importálása, fájlok olvasása és írása a
withsegítségével, strukturált adatok cseréje ajsonmodulon keresztül, valamint bináris rekordok csomagolása astructmodullal, bájtsorrenddel és rögzített szélességű egész mezőkkel. Ezek abban a pillanatban előkerülnek, amint egy szkript túlnő egyetlen fájlon, vagy valami önmagán kívülivel kell kommunikálnia.Azok a részek, amelyek alakot változtatnak egy korlátozott futtatókörnyezeten – miért 32 bitesek a MicroPython lebegőpontos számai, és hogyan hasonlítsd össze őket megbízhatóan, hogyan osztja ki és veszi vissza a blokkokat a szemétgyűjtő, miért számít a töredezettség egy kis kupacon, és hogyan tartja jól viselkedőként a hosszan futó szkripteket az előzetes lefoglalás. Az asztali szokások itt néha félrevezetnek; ez az anyag a megfelelő gondolati modellt adja az eszközön futó kódhoz.
Az introspekciós és dinamikuskód-eszközök –
id(),hash(),isinstance(),issubclass(),callable(),globals(),locals()az értékek és a környezet vizsgálatához;eval()/exec()/compile()azokhoz a ritka esetekhez, amikor a kód futásidejű előállítása a helyes válasz. A legtöbb szkript soha nem érinti ezeket, de annak ismerete, hogy léteznek (és hogy mikor ne nyúlj hozzájuk) része mások Python-kódjának olvasásának.Mintaillesztés szövegen – a
remodul azokhoz a karakterláncokhoz, amelyek alakját le tudod írni, de nem tudod felsorolni. Karakterosztályok, kvantorok, befogó csoportok, horgonyok és a mohó-kontra-lusta kompromisszum, együtt azokkal a konkrét helyekkel, ahol a MicroPython részhalmaza elmarad a CPythontól. Akkor nyúlj hozzá, amikor astr.findvagy astr.splitkifut a lehetőségekből.Konténerek a beépítetteken túl –
collections.namedtuple()a típusos rekordokhoz,collections.dequea korlátozott gyűrűpufferekhez és gördülő ablakokhoz,collections.OrderedDictamikor a beszúrási sorrend része az egyenlőségnek, ésheapqa „melyik a legkisebb” vagy „melyik a legsürgősebb” kérdésekhez, egy sima listára építve. Mindegyik betölt egy rést, amit a négy alapvető konténertípus maga után hagy.A mindennapi munkafolyamat-eszközök – listaértelmezések gyűjtemények meglévőkből való felépítéséhez, generátorok és az iterátorprotokoll az adatok lusta feldolgozásához, dekorátorok és kontextuskezelők a gyakori lefoglalás/felszabadítás és előtte/utána minták becsomagolásához, valamint a hibakeresési szokások (visszakövetések olvasása,
repr(),dir(),help(), aloggingmodul), amelyek egy hibás szkriptből egy javítottat csinálnak.
2.42.1. Ennek a bevezetőnek a későbbi használata¶
Tekints a bevezetőre referenciaanyagként, ne egyszeri olvasmányként. A fejezetek szándékosan rövidek; az a tervezett használat, hogy visszatérsz felfrissíteni a szeletelést, a kontextuskezelőket vagy a listaértelmezéseket. Tedd könyvjelzők közé azt a szakaszt, amelyhez a leggyakrabban nyúlsz.
Ha később valami a kamera dokumentációjában egy olyan Python-fogalomra hivatkozik, amelyet nem ismersz fel – mondjuk, „ez egy kontextuskezelőt ad vissza” vagy „iterálj az eredményen” – a megfelelő bevezetőoldal az a hely, ahonnan kiindulhatsz.
2.42.2. Merre tovább innen¶
Az alapvető hardvervezérlés közvetlenül arra a Pythonra épül, amelyet most már ismersz. Míg a bevezető a memóriában élt, a hardvervezérlés a fizikai világban él – feszültségek a lábakon, impulzusok a vezetékeken, buszokon más chipekre órajelezett bájtok. Az eszköztár a machine modulra és egy vékony elektronikai rétegre vált át. A bevezetőből minden tovább él; nem kell újratanulnod a def vagy a with használatát, sem azt, hogy a bytearray miben különbözik a bytes típustól.
Amikor egy olyan Python-funkcióba ütközöl, amely ismeretlennek tűnik a hardveres anyagban, ehhez a bevezetőhöz térhetsz vissza.