Python
Model tasarımı
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.
Örnek çözümü göster
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)
Kendini test et
-
Blog uygulaması neden sınıflarla yazılır?
- Yazı verisini ve davranışı tek pakette tutar, kod tekrar kullanılır.
- 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.
Cevabı göster
Yazı verisini ve davranışı tek pakette tutar, kod tekrar kullanılır. — Sınıf, veriyi ve davranışı tek pakette tutar; böylece kodu başka projelerde tekrar kullanabilirsin.
-
Post alanının türünü tamamla
@dataclass
class Post:
title: ____ = ""
content: str = ""
author: str = ""
Cevabı göster
@dataclass
class Post:
title: str = ""
content: str = ""
author: str = ""
-
Blog projesi kavramlarını eşleştir
- Post
- Yazı verisini tutar
- Comment
- Yorum verisini tutar
- title
- Yazı başlığı
- author
- Yazı ya da yorum yazarı
Sıradaki ders: Blog sınıfı