Model tasarımı
- Python kursu
- Orta seviye
- Ders 59/116
- 6 dk
Post ve Comment sınıflarının iskeletini tasarlarsın.
Proje: Blog uygulaması
Bu beş derslik projede bir blog uygulaması yapacaksın. Her derste bir parça ekleyecek, son derste çalışan bir mini komut satırı uygulamasını tamamlayacaksın.
Önceki gruplarda öğrendiğin sınıf (class), veri sınıfı (dataclass) ve liste kavramlarını kullanacaksın. Proje boyunca bir Post sınıfı tasarlayacaksın: başlık, içerik ve yazar bilgisi tutan bir yapı. Yanına Comment sınıfını ekleyip yazılara yorum bağlayacaksın. Sonra Blog sınıfı ile birden çok yazıyı ekleyip arama yapacaksın.
Post ve Comment iskeleti
Bir yazı (post), başlık, içerik ve yazar olmak üzere üç temel veri taşır. @dataclass süsleyicisi (decorator) ile bu sınıfı kısa yoldan tanımlarsın: her alan adının yanına türünü ve boş dize varsayılanını yazarsın.
Bir yorum (comment) ise yazar adı ve kısa metin taşır. İki sınıfı da ayrı ayrı tanımlarsın; yorumları yazıya bağlama işini sonraki derste yapacaksın. field(default_factory=list) ile boş bir liste varsayılanı oluşturmayı da göreceksin.
Uygulama Post ve Comment sınıflarını tanımla
Bu projenin ilk parçasını yaz. @dataclass süsleyicisi ile Post sınıfını tanımla; title: str = "", content: str = "" ve author: str = "" alanlarını ekle. Aynı biçimde Comment sınıfını author: str = "" ve text: str = "" ile tanımla. Sonra p = Post(title="İlk yazı", content="Merhaba", author="Ayşe") ile bir yazı oluştur ve print(p.title) ile başlığı yazdır.
Başlangıç kodu
from dataclasses import dataclass, field
# Post sınıfını tanımla: title, content, author alanları
# Comment sınıfını tanımla: author, text alanları
# Bir Post örneği oluştur ve başlığını yazdırÖrnek çözüm
from dataclasses import dataclass, field
@dataclass
class Post:
title: str = ""
content: str = ""
author: str = ""
@dataclass
class Comment:
author: str = ""
text: str = ""
p = Post(title="İlk yazı", content="Merhaba", author="Ayşe")
print(p.title)Beklenen çıktı
İlk yazı
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Blog uygulaması neden sınıflarla yazılır?
- Yazı verisini ve davranışı tek pakette tutar, kod tekrar kullanılır. Doğru cevap
- Sınıf olmadan da yazılabilir, fark etmez.
- Sınıflar yalnızca veritabanı olan projelerde çalışır.
- Sınıf kullanımı programı her zaman yavaşlatır.
Açıklama: Sınıf, veriyi ve davranışı tek pakette tutar; böylece kodu başka projelerde tekrar kullanabilirsin.
2 Post alanının türünü tamamla
@dataclass
class Post:
title: ____ = ""
content: str = ""
author: str = ""
@dataclass
class Post:
title: str = ""
content: str = ""
author: str = ""
Açıklama: title alanı metin olduğu için str türü yazılır.
3 Blog projesi kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
Post |
Yazı verisini tutar |
Comment |
Yorum verisini tutar |
title |
Yazı başlığı |
author |
Yazı ya da yorum yazarı |