2.42. Özet¶
OpenMV Cam için betikler yazarken sürekli karşınıza çıkan Python bölümlerini baştan sona incelediniz:
Dil temelleri – değerler ve değişkenler, aritmetik ve karşılaştırma, dizeler ve baytlar, dört temel koleksiyon (
list,tuple,dict,set), koşullar ve döngüler, işlevleri tanımlama ve onların argümanlarını ve kapsamını yönetme, sınıfları tanımlama ve kalıtımı kullanma, istisnaları yükseltme ve işleme. Bunlar, Python’ın diğer her parçasının üzerine inşa edildiği tuğlalardır.Yapısal parçalar – kodu modüllere ve paketlere bölme, ihtiyacınız olanı içe aktarma,
withile dosya okuma ve yazma,jsonaracılığıyla yapılandırılmış veri alışverişi yapma vestructaracılığıyla bayt sırası (endianness) ve sabit genişlikli tam sayı alanlarıyla ikili kayıtları paketleme. Bunlar, bir betik tek bir dosyanın ötesine büyüdüğü veya kendi dışındaki bir şeyle konuşması gerektiği anda ortaya çıkar.Kısıtlı bir çalışma zamanında biçim değiştiren parçalar – MicroPython kayan noktalı sayılarının neden 32-bit olduğu ve bunları nasıl güvenilir biçimde karşılaştıracağınız, çöp toplayıcının blokları nasıl dağıttığı ve geri kazandığı, küçük bir yığında parçalanmanın neden önemli olduğu ve ön ayırmanın uzun süre çalışan betikleri nasıl uslu tuttuğu. Masaüstü alışkanlıkları burada bazen yanıltabilir; bu materyal cihaz üzerinde yaşayan kod için doğru zihinsel modeli verir.
İçgözlem ve dinamik kod araçları – değerlere ve ortama bakmak için
id(),hash(),isinstance(),issubclass(),callable(),globals(),locals(); çalışma zamanında kod üretmenin doğru cevap olduğu nadir durumlar içineval()/exec()/compile(). Çoğu betik bunlara hiç dokunmaz, ancak var olduklarını (ve ne zaman onlara başvurmayacağınızı) bilmek başkalarının Python’ını okumanın bir parçasıdır.Metin üzerinde örüntü eşleştirme – biçimini tanımlayabildiğiniz ama numaralandıramadığınız dizeler için
remodülü. Karakter sınıfları, niceleyiciler, yakalama grupları, çapalar ve açgözlü-tembel takası ile birlikte MicroPython’ın alt kümesinin CPython’dan geri kaldığı belirli yerler.str.findveyastr.splityolun sonuna geldiğinde buna başvurun.Yerleşiklerin ötesindeki kapsayıcılar – türlü kayıtlar için
collections.namedtuple(), sınırlı halka arabellekleri ve kayan pencereler içincollections.deque, ekleme sırası eşitliğin bir parçası olduğundacollections.OrderedDictve düz bir liste üzerine kurulu “en küçük hangisi” veya “en acil hangisi” sorularını yanıtlamak içinheapq. Her biri, dört temel kapsayıcı türünün geride bıraktığı bir boşluğu doldurur.Gündelik iş akışı araçları – mevcut koleksiyonlardan yeni koleksiyonlar oluşturmak için kapsamalar (comprehensions), verileri tembelce işlemek için üreteçler (generators) ve yineleyici (iterator) protokolü, yaygın edinme/serbest bırakma ve öncesi/sonrası örüntülerini sarmak için dekoratörler ve bağlam yöneticileri (context managers) ve bozuk bir betiği düzeltilmiş bir betiğe dönüştüren hata ayıklama alışkanlıkları (geri izleri okuma,
repr(),dir(),help(),loggingmodülü).
2.42.1. Bu başlangıç rehberini daha sonra kullanma¶
Başlangıç rehberini tek seferde okunan bir metin değil, başvuru materyali olarak ele alın. Bölümler bilerek kısadır; dilimleme, bağlam yöneticileri veya kapsamalar konusunda bilgileri tazelemek için geri dönmek amaçlanan kullanım biçimidir. En çok başvurduğunuz bölümü yer imlerine ekleyin.
Kameranın belgelerinde daha sonra tanımadığınız bir Python kavramına atıfta bulunulursa – örneğin “bu bir bağlam yöneticisi döndürür” veya “sonucu yineleyin” – ilgili başlangıç rehberi sayfası başlamak için doğru yerdir.
2.42.2. Buradan nereye gidilir¶
Temel donanım kontrolü doğrudan şimdi bildiğiniz Python’ın üzerine inşa edilir. Başlangıç rehberi bellekte yaşarken, donanım kontrolü fiziksel dünyada yaşar – pinlerdeki gerilimler, tellerdeki darbeler, başka çiplere veri yollarından akıtılan baytlar. Araç takımı machine modülüne ve ince bir elektronik katmanına kayar. Başlangıç rehberinden her şey ileriye taşınır; def veya with ya da bytearray‘in bytes‘tan nasıl farklı olduğunu yeniden öğrenmeyeceksiniz.
Donanım materyalinde tanıdık gelmeyen bir Python özelliğiyle karşılaştığınızda, bu başlangıç rehberi geri dönülecek yerdir.