CodeBlanks Logo Icon CodeBlanks

Proje tasarımı

Uzman finali iskeletini tasarlarsın.

Uzman finali: veri işleme araç seti

Bu beş derslik uzman finalınde tüm expert konularını birleştiren bir mini uygulama yapacaksın. İlk derste type() ile dinamik bir Tool sınıfı oluşturursun.

Tool sınıfının name özelliği ve run yöntemi olacak. Sonraki derslerde bu temel üstüne metaprogramming, multiprocessing ve ctypes katmanları ekleyeceksin. Her ders bir code adımıyla bir parça ekler; başlangıç kodu önceki dersin çözümünü içerir. Bu, gerçek bir araç setinin nasıl büyüdüğünü gösterir.

Uygulama Tool sınıfını type() ile yaz

Tool sınıfını type() ile oluştur. İkinci argüman boş demet (), üçüncü argüman bir sözlük olsun. Sözlükte "name": "arac" özelliği ve "run" yöntemi olsun. run şunu döndürsün: f"{self.name} calisti". Örnek oluştur ve run() çıktısını yazdır.

Başlangıç kodu

main.py
# Tool sınıfını type() ile oluştur
# name ve run ekle
# örneği yazdır

Örnek çözüm

main.py
# Tool sınıfını type() ile oluştur
Tool = type("Tool", (), {
    "name": "arac",
    "run": lambda self: f"{self.name} calisti",
})
t = Tool()
print(t.run())

Beklenen çıktı

arac calisti

Sıradaki adım: metaprogramming

Tool sınıfı hazır. Sonraki derste bu temel üstüne bir metaprogramming katmanı ekleyeceksin: Field descriptor ve ModelMeta metaclass.

Bu katman, sınıfların alanlarını otomatik olarak toplamasını sağlayacak. Django ORM benzeri bir bildirimsel yapı kuracaksın. Her ders bir katman ekler; başlangıç kodu önceki çözümü taşır.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 type() bu projede ne için kullanılır?

  • Dizi işlemek
  • Süreç başlatmak
  • C kütüphanesi yüklemek
  • Dinamik Tool sınıfı oluşturmak Doğru cevap

Açıklama: type() ile çalışma anında Tool sınıfını oluşturursun.

2 Tool tanımını tamamla

Soru
Tool = type("Tool", (), {____})
Cevap
Tool = type("Tool", (), {"name": "arac"})

Açıklama: Sözlükte name özelliği bu şekilde tanımlanır.

3 Proje kavramlarını eşleştir

Kavram Anlamı
type() Sınıf oluşturur
Tool İlk sınıf
name Özellik
run Yöntem

Uzman bölümündeki tüm dersler