__str__ ve __repr__
- Python kursu
- Orta seviye
- Ders 5/116
- 4 dk
__str__ ve __repr__ ile gösterim öğrenirsin.
__str__ metodu
__str__, bir örneği inşana okunaklı dizgeye çeviren metottur. print() ve str() bu metodu çağırır. Bir str döndürmelidir.
Örnek: class Book:\n def __str__(self):\n return f"Kitap: {self.title}". Böylece print(b) yazdığında Kitap: ... görünür; aksi halde <Book object at 0x...> gibi çirkin bir çıktı alırdın. __str__ kullanıcıya gösterilecek kısa metni üretir.
__repr__ metodu
__repr__, bir örneği geliştiriciye yönelik temsile çevirir. repr() ve etkileşimli kabuk bu metodu çağırır. İdeal olarak eval ile örneği yeniden oluşturabileceğin bir dizge döndürür.
Örnek: class Book:\n def __repr__(self):\n return f"Book(title={self.title!r})". Böylece repr(b) Book(title='...') döndürür. __str__ tanımlı değilse __repr__ yedek olarak kullanılır. Hata ayıklarken __repr__ daha bilgilendiricidir.
Uygulama Book sınıfına __str__ ekle
Book adında bir sınıf tanımla. def __init__(self, title): metodu ekle ve gövdede self.title = title yaz. Ayrıca def __str__(self): metodu ekle ve return f"Kitap: {self.title}" yaz. Sonra b = Book("Sefiller") ile örnek oluştur ve print(b) ile yazdır.
Başlangıç kodu
# Book sınıfını, __init__ ve __str__ ile tanımlaÖrnek çözüm
# Book sınıfını, __init__ ve __str__ ile tanımla
class Book:
def __init__(self, title):
self.title = title
def __str__(self):
return f"Kitap: {self.title}"
b = Book("Sefiller")
print(b)Beklenen çıktı
Kitap: Sefiller
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 __str__ imzasını tamamla
class Book:
def __str__(self):
return f"Kitap: {self.____}"
class Book:
def __str__(self):
return f"Kitap: {self.title}"
Açıklama: self.title özniteliğine eriştin.
2 İki metodu eşle
| Kavram | Anlamı |
|---|---|
__str__ |
İnşana okunaklı |
__repr__ |
Geliştirici temsili |
print(b) |
__str__ çağrılır |
3 print(b) hangi metodu çağırır?
- __str__ Doğru cevap
- __repr__
- __init__
- __len__
Açıklama: print() önce __str__ metodunu çağırır.