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 melaluijson, dan mengemas rekaman biner melaluistructdengan 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
reuntuk 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 ketikastr.findataustr.splitsudah tidak cukup.Kontainer melampaui bawaan --
collections.namedtuple()untuk rekaman bertipe,collections.dequeuntuk buffer ring terbatas dan jendela bergulir,collections.OrderedDictketika urutan penyisipan merupakan bagian dari kesetaraan, danheapquntuk 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(), modullogging) 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.