Python’da dataclasses: Sınıf Yazmanın Kısa Yolu

Python'da @dataclass ile __init__, __repr__ ve __eq__ yazmaya son. default_factory, __post_init__, frozen, order, slots ve asdict seçeneklerini çalışan örneklerle inceliyoruz.
Yapay Zeka - Bilim - Teknoloji (AI-Sci-Tech)
Yapay Zeka - Bilim - Teknoloji (AI-Sci-Tech)

Python'da @dataclass ile __init__, __repr__ ve __eq__ yazmaya son. default_factory, __post_init__, frozen, order, slots ve asdict seçeneklerini çalışan örneklerle inceliyoruz.

Python 3.15 9 Ekim'de geliyor. lazy import ile 8 kat hızlı açılış, yerleşik frozendict, kavrayışlarda açma, sentinel ve varsayılan UTF-8'i sürüm adayında çalıştırdığımız örneklerle inceliyoruz.

Projeniz üretim (production) sunucusuna dağıtılmaya hazır ama acaba script’iniz gerçekten izole bir sanal ortam (virtual environment) içinde mi çalışıyor, yoksa sistem genelindeki (global) Python kurulumuna mı bulaşıyor? Bu soruyu manuel kontrol etmek yerine, koda birkaç satırla otomatik bir “sağlık kontrolü”…

Bir web sayfasına baktığınızda gördüğünüz güzel tasarım, aslında tarayıcının arkasında iç içe geçmiş yüzlerce HTML etiketinden ibarettir. Peki o karmaşadan yalnızca ihtiyacınız olan başlığı, yazarı veya linki nasıl çekip alırsınız? İşte tam burada Python’ın en sevilen kütüphanelerinden biri olan BeautifulSoup…

Bir web formuna yanlış yazılmış bir e-posta adresi, hatalı biçimli bir telefon numarası ya da “12345” gibi zayıf bir şifre girildiğinde, bu hatanın veritabanına ulaşmadan önce yakalanması gerekir. Python’ın yerleşik re modülü, tam da bu “girdi kapıda durdurulsun” mantığını birkaç…

Bir Python scriptini her çalıştırdığında kodun içine girip değişken değerlerini elle değiştirmek zorunda kaldın mı hiç? Ya da input() ile kullanıcıya soru sorup cevap beklemek scriptini otomasyona sokmanı imkânsız hâle mi getirdi? İşte tam burada argparse devreye giriyor: komut satırından…

Üç farklı sunucudan veri çekmeniz gerektiğini düşünün; her biri birkaç saniye sürüyor. Sırayla isteyip her birinin bitmesini beklerseniz toplam süre üçünün toplamı kadar uzar. Ya aynı anda, tek bir iş parçacığıyla (thread) hepsini beklemenin bir yolu olsaydı? İşte tam bu…

Python’da “neden 4 çekirdekli işlemcim varken kodum tek çekirdekte sürünüyor?” diye sorduğun oldu mu? Suçlu, Python’ın ünlü Global Interpreter Lock (GIL) mekanizması. Bu yazıda, multiprocessing modülüyle GIL’i tamamen devre dışı bırakıp CPU’nun tüm çekirdeklerini aynı anda nasıl çalıştırabileceğini adım adım…

Projenizi bir arkadaşınızın bilgisayarında çalıştırdığınızda “bende çalışıyordu ama sende çalışmıyor” diye bir cümle kurduysanız, suçlu büyük ihtimalle bağımlılık yönetimidir. Python’da paketleri kurmanın klasik yolu olan pip ve requirements.txt ikilisi basittir ama alt bağımlılıkların (bir paketin kendi ihtiyaç duyduğu paketlerin) sürümünü…

Kodunuz çalışıyor, ama gerçekten çalıştığından nasıl emin olabilirsiniz? Elle her seferinde birkaç örnek deneyip “sanırım tamam” demek yerine, bu güveni otomatikleştirebilirsiniz. İşte tam bu ihtiyaç için var olan araç pytest: yazdığınız her fonksiyonun beklendiği gibi davrandığını, siz kod değiştirdikten sonra…