2.42. Penutup

Anda telah mempelajari bagian-bagian Python yang sering muncul saat menulis skrip untuk OpenMV Cam:

  • Dasar-dasar bahasa -- nilai dan variabel, aritmetika dan perbandingan, string dan bytes, empat koleksi inti (list, tuple, dict, set), kondisional dan loop, mendefinisikan fungsi dan mengelola argumen serta cakupannya, mendefinisikan kelas dan menggunakan pewarisan, memunculkan dan menangani pengecualian. Ini adalah blok bangunan dari setiap bagian Python lainnya.

  • Bagian struktural -- memisahkan kode ke dalam modul dan paket, mengimpor apa yang Anda butuhkan, membaca dan menulis file dengan with, bertukar data terstruktur melalui json, dan mengemas rekaman biner melalui struct dengan endianness dan bidang bilangan bulat lebar tetap. Ini muncul begitu skrip berkembang melampaui satu file atau perlu berkomunikasi dengan sesuatu di luar dirinya sendiri.

  • Bagian yang berubah bentuk pada runtime terbatas -- mengapa float MicroPython adalah 32-bit dan cara membandingkannya secara andal, bagaimana garbage collector mendistribusikan dan mengambil kembali blok, mengapa fragmentasi penting pada heap kecil, dan bagaimana pre-alokasi menjaga skrip yang berjalan lama tetap berperilaku baik. Kebiasaan desktop terkadang menyesatkan di sini; materi ini memberi Anda model mental yang tepat untuk kode yang berjalan di perangkat.

  • Alat introspeksi dan kode dinamis -- id(), hash(), isinstance(), issubclass(), callable(), globals(), locals() untuk melihat pada nilai dan lingkungan; eval() / exec() / compile() untuk kasus-kasus langka di mana menghasilkan kode saat runtime adalah jawaban yang tepat. Sebagian besar skrip tidak pernah menyentuh ini, tetapi mengetahui bahwa mereka ada (dan kapan tidak menggunakannya) adalah bagian dari membaca Python orang lain.

  • Pencocokan pola pada teks -- modul re untuk string yang bentuknya dapat Anda gambarkan tetapi tidak dapat Anda enumerasi. Kelas karakter, quantifier, grup penangkap, jangkar, dan pertukaran greedy-versus-lazy, bersama dengan tempat-tempat spesifik di mana subset MicroPython tidak mencapai CPython. Gunakan ketika str.find atau str.split sudah tidak cukup.

  • Kontainer melampaui bawaan -- collections.namedtuple() untuk rekaman bertipe, collections.deque untuk buffer ring terbatas dan jendela bergulir, collections.OrderedDict ketika urutan penyisipan merupakan bagian dari kesetaraan, dan heapq untuk pertanyaan "apa yang terkecil" atau "apa yang paling mendesak" yang dibangun di atas daftar biasa. Setiap satu mengisi celah yang ditinggalkan oleh empat tipe kontainer inti.

  • Alat alur kerja sehari-hari -- comprehension untuk membangun koleksi dari yang sudah ada, generator dan protokol iterator untuk memproses data secara malas, dekorator dan context manager untuk membungkus pola acquire/release dan before/after yang umum, serta kebiasaan debugging (membaca traceback, repr(), dir(), help(), modul logging) yang mengubah skrip yang rusak menjadi yang sudah diperbaiki.

2.42.1. Menggunakan primer ini nanti

Perlakukan primer sebagai materi referensi, bukan bacaan sekali lewat. Bab-bab sengaja dibuat singkat; kembali untuk menyegarkan pemahaman tentang slicing, context manager, atau comprehension adalah penggunaan yang dimaksudkan. Tandai bagian yang paling sering Anda gunakan.

Jika sesuatu dalam dokumentasi kamera nanti merujuk pada konsep Python yang tidak Anda kenali -- misalnya, "ini mengembalikan context manager" atau "iterasi hasilnya" -- halaman primer yang sesuai adalah tempat untuk memulai.

2.42.2. Ke mana selanjutnya

Kontrol perangkat keras dasar dibangun langsung di atas Python yang kini Anda ketahui. Di mana primer berada dalam memori, kontrol perangkat keras berada di dunia fisik -- tegangan pada pin, pulsa pada kabel, byte yang dikirimkan melalui bus ke chip lain. Toolkit beralih ke modul machine dan lapisan tipis elektronika. Semua hal dari primer tetap berlaku; Anda tidak perlu mempelajari kembali def atau with atau bagaimana bytearray berbeda dari bytes.

Ketika Anda menemukan fitur Python yang terasa asing dalam materi perangkat keras, primer ini adalah tempat untuk kembali.