Yorum ekleme
- Python kursu
- Orta seviye
- Ders 61/116
- 6 dk
add_comment ile yorumsal akışı yazarsın.
Yorumları Post'a bağla
İlk derste Comment sınıfını tanımlamıştık ama yazıya bağlamamıştık. Şimdi Post sınıfına comments: list = field(default_factory=list) alanını ekleriz. Böylece her yazının kendi yorum listesi olur.
Sonra Post sınıfının içine add_comment metodunu yazarız: self.comments.append(comment). Bir yorum eklemek için p.add_comment(Comment(author="Ali", text="Güzel")) yazmak yeterli. len(p.comments) ile yorum sayısını alırsın.
Metodun yeri önemli
add_comment metodunu Post sınıfının içine yazarsın çünkü yorum o yazıya bağlıdır. Blog sınıfına koymak yanlış olur; blog birçok yazı tutar ve hangi yazıya yorum ekleneceğini bilemezsin.
Metodun gövdesinde self.comments.append(comment) çağrısı yapılır. self o anki yazı örneğidir; comments ise onun kendi listesidir. Bu ayrım sayesinde her yazının yorumları birbirine karışmaz.
Uygulama Post sınıfına yorum ekle
Üstteki Post sınıfına comments: list = field(default_factory=list) alanını ekle ve def add_comment(self, comment): metodunu self.comments.append(comment) gövdesiyle yaz. Sonra p = Post(title="İlk", author="Ayşe") ile bir yazı oluştur, iki yorum ekle ve print(len(p.comments)) ile yorum sayısını yazdır.
Başlangıç kodu
from dataclasses import dataclass, field
@dataclass
class Post:
title: str = ""
content: str = ""
author: str = ""
@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)
# Post sınıfına comments alanı ve add_comment metodunu ekle
# Bir yazı oluştur, iki yorum ekle, sayıyı yazdı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)
p = Post(title="İlk", author="Ayşe")
p.add_comment(Comment(author="Ali", text="Güzel olmuş"))
p.add_comment(Comment(author="Veli", text="Teşekkürler"))
print(len(p.comments))Beklenen çıktı
2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Yorum ekleme kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
comments |
Yazının yorum listesi |
add_comment |
Yorum ekleme metodu |
append |
Sona ekleme |
len |
Sayı verme işlevi |
2 add_comment metodu hangi sınıfa eklenir?
- Blog sınıfına
- Comment sınıfına
- Post sınıfına Doğru cevap
- Modül düzeyinde bırakılır
Açıklama: Yorum bir yazıya bağlı olduğu için add_comment Post sınıfında yer alır.
3 add_comment metodunun parametresi
def add_comment(self, ____):
self.comments.append(comment)
def add_comment(self, comment):
self.comments.append(comment)
Açıklama: Tek bir yorum nesnesi parametre olarak alınır.