CodeBlanks Logo Icon CodeBlanks

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.

Başlangıç kodu

main.py
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

main.py
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

Soru
@dataclass
class Post:
    title: ____ = ""
    content: str = ""
    author: str = ""
Cevap
@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ı

Orta seviye bölümündeki tüm dersler