2.42. Recapitulare

Ați parcurs părțile din Python care apar constant atunci când scrieți scripturi pentru OpenMV Cam:

  • Fundamentele limbajului – valori și variabile, aritmetică și comparație, șiruri și octeți, cele patru colecții de bază (list, tuple, dict, set), condiționale și bucle, definirea funcțiilor și gestionarea argumentelor și domeniului lor de vizibilitate, definirea claselor și utilizarea moștenirii, ridicarea și tratarea excepțiilor. Acestea sunt cărămizile din care este construită orice altă parte din Python.

  • Elementele structurale – împărțirea codului între module și pachete, importarea a ceea ce aveți nevoie, citirea și scrierea fișierelor cu with, schimbul de date structurate prin json și împachetarea înregistrărilor binare prin struct cu ordinea octeților (endianness) și câmpuri de numere întregi cu lățime fixă. Acestea apar în momentul în care un script crește dincolo de un singur fișier sau are nevoie să comunice cu ceva din exterior.

  • Părțile care își schimbă forma pe un mediu de execuție restrâns – de ce numerele în virgulă mobilă din MicroPython sunt pe 32 de biți și cum să le comparați fiabil, cum colectorul de gunoaie distribuie și recuperează blocuri, de ce fragmentarea contează pe o grămadă (heap) mică și cum prealocarea menține comportamentul corect al scripturilor de lungă durată. Obiceiurile de pe desktop induc uneori în eroare aici; acest material vă oferă modelul mental corect pentru cod care rulează pe dispozitiv.

  • Instrumentele de introspecție și de cod dinamicid(), hash(), isinstance(), issubclass(), callable(), globals(), locals() pentru a privi la valori și la mediu; eval() / exec() / compile() pentru cazurile rare în care producerea de cod în timpul execuției este răspunsul corect. Majoritatea scripturilor nu ating niciodată acestea, dar a ști că există (și când să nu recurgeți la ele) face parte din citirea codului Python al altora.

  • Potrivirea de tipare pe text – modulul re pentru șiruri a căror formă o puteți descrie, dar nu o puteți enumera. Clase de caractere, cuantificatori, grupuri de captură, ancore și compromisul lacom-versus-leneș, împreună cu locurile specifice în care subsetul MicroPython rămâne în urma CPython. Recurgeți la el atunci când str.find sau str.split ajung la capăt.

  • Containere dincolo de cele încorporatecollections.namedtuple() pentru înregistrări tipizate, collections.deque pentru tampoane circulare mărginite și ferestre glisante, collections.OrderedDict atunci când ordinea inserării face parte din egalitate și heapq pentru întrebări de tipul „care este cel mai mic” sau „care este cel mai urgent” construite pe o listă simplă. Fiecare umple un gol pe care îl lasă în urmă cele patru tipuri de containere de bază.

  • Instrumentele fluxului de lucru cotidian – comprehensiunile pentru construirea de colecții din cele existente, generatoarele și protocolul iteratorului pentru procesarea leneșă a datelor, decoratorii și gestionarii de context pentru încapsularea tiparelor comune de achiziție/eliberare și înainte/după, precum și obiceiurile de depanare (citirea trasărilor de stivă, repr(), dir(), help(), modulul logging) care transformă un script defect într-unul reparat.

2.42.1. Utilizarea acestui ghid introductiv mai târziu

Tratați ghidul introductiv ca material de referință, nu ca o lectură de o singură trecere. Capitolele sunt scurte în mod intenționat; revenirea pentru a vă reîmprospăta cunoștințele despre feliere, gestionari de context sau comprehensiuni este utilizarea preconizată. Marcați secțiunea la care recurgeți cel mai des.

Dacă ceva din documentația camerei face referire ulterior la un concept Python pe care nu îl recunoașteți – să zicem, „acesta returnează un gestionar de context” sau „iterați rezultatul” – pagina corespunzătoare din ghidul introductiv este locul de unde să începeți.

2.42.2. Unde să mergeți de aici

Controlul de bază al hardware-ului se construiește direct pe Python-ul pe care îl cunoașteți acum. Acolo unde ghidul introductiv trăia în memorie, controlul hardware-ului trăiește în lumea fizică – tensiuni pe pini, impulsuri pe fire, octeți tactați pe magistrale către alte cipuri. Setul de instrumente se mută la modulul machine și un strat subțire de electronică. Tot din ghidul introductiv se transferă mai departe; nu veți reînvăța def sau with ori cum diferă bytearray de bytes.

Atunci când întâlniți o caracteristică Python care vă pare nefamiliară în materialul despre hardware, acest ghid introductiv este locul unde să reveniți.