Birleştirme
- Python kursu
- Orta seviye
- Ders 63/116
- 6 dk
Blog sınıfını menü döngüsüyle birleştirirsin.
Tüm parçaları birleştir
Son derste tüm parçaları bir araya getirip çalışan bir komut satırı akışı kurarsın. Bir show_menu işlevi tanımlar; içine bir blog, üç yazı ve arama çağrısı koyarsın. Ekrana yazı sayısını ve arama sonucunu yazdırırsın.
Bu akış gerçek bir uygulamada menü seçenekleriyle dallanır; burada yalnızca sabit verilerle çalışıp çıktıyı doğrularsın. Önemli olan, sınıfların ve metodların birlikte nasıl çalıştığını görmektir.
Uygulama show_menu işlevini yaz
Üstteki sınıflar hazır. Şimdi def show_menu(): işlevini yaz. İçinde blog = Blog() ile bir blog oluştur, üç yazı ekle (ikisinin yazarı "Ayşe" olsun, üçüncüsü "Ali"). Sonra print("Yazı sayısı:", len(blog.posts)) ve print("Ayşe'nin yazıları:", len(blog.search_by_author("Ayşe"))) satırlarını ekle. En sonda show_menu() çağrısı yap.
Başlangıç kodu
from dataclasses import dataclass, field
@dataclass
class Post:
title: str = ""
content: str = ""
author: str = ""
comments: list = field(default_factory=list)
def add_comment(self, comment):
self.comments.append(comment)
@dataclass
class Comment:
author: str = ""
text: str = ""
@dataclass
class Blog:
posts: list = field(default_factory=list)
def add_post(self, post):
self.posts.append(post)
def search_by_author(self, author):
return [p for p in self.posts if p.author == author]
# show_menu işlevini tanımla
# İşlevi çağırÖrnek çözüm
from dataclasses import dataclass, field
@dataclass
class Post:
title: str = ""
content: str = ""
author: str = ""
comments: list = field(default_factory=list)
def add_comment(self, comment):
self.comments.append(comment)
@dataclass
class Comment:
author: str = ""
text: str = ""
@dataclass
class Blog:
posts: list = field(default_factory=list)
def add_post(self, post):
self.posts.append(post)
def search_by_author(self, author):
return [p for p in self.posts if p.author == author]
def show_menu():
blog = Blog()
blog.add_post(Post(title="Birinci", author="Ayşe"))
blog.add_post(Post(title="İkinci", author="Ali"))
blog.add_post(Post(title="Üçüncü", author="Ayşe"))
print("Yazı sayısı:", len(blog.posts))
print("Ayşe'nin yazıları:", len(blog.search_by_author("Ayşe")))
show_menu()Beklenen çıktı
Yazı sayısı: 3 Ayşe'nin yazıları: 2
Projenin değerlendirmesi
Bu projede üç sınıf tanımladın: Post, Comment ve Blog. Her biri tek bir işi iyi yapar; Blog koleksiyonu yönetir, Post yorumları tutar, Comment ise yalnızca veri taşır.
Arama metodunda liste üretimini kullandın; bu, döngü ve koşuldan kısa bir örüntüdür. Veri sınıfları sayesinde kurucu metot yazmadan çok sayıda alan tanımladın. Bu yapı, daha büyük uygulamalarda da aynı kalır.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Projenin birleştirilmesi ne sağlar?
- Tüm parçalar birlikte çalışır, eksiksiz uygulama elde edilir Doğru cevap
- Daha az kod yazılır, kısayollar aktifleşir
- Sınıflar gereksiz hale gelir, silinebilir
- Program otomatik olarak hızlanır
Açıklama: Birleştirme, parçaların birlikte çalıştığı eksiksiz bir akış kurar.
2 Menü çağrısını tamamla
____()
show_menu()
Açıklama: show_menu() çağrısı işlevi çalıştırır.
3 Proje sınıflarını eşleştir
| Kavram | Anlamı |
|---|---|
Blog |
Yazı koleksiyonunu yönetir |
Post |
Tek bir yazıyı ve yorumlarını tutar |
Comment |
Yorum verisini taşır |
search_by_author |
Yazara göre arama yapar |