CodeBlanks Logo Icon CodeBlanks

__str__ ve __repr__

__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

main.py
# Book sınıfını, __init__ ve __str__ ile tanımla

Örnek çözüm

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

Soru
class Book:
    def __str__(self):
        return f"Kitap: {self.____}"
Cevap
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.

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