Python __str__ and __repr__ methods

Merhaba, bu yazıda __str__ ve __repr__ method’larına bakacağız.

Bu yazıya geçmeden önce Flask ile ilgili farklı bir yazıyı ziyaret edebilirsiniz.

Python programlama dilinde bazı standart gelen önemli methodlar vardır. Örneğin __init__ methodu bir class oluşturduğumuzda hazır olarak ekleyebileceğimiz bir metottur. Bu method ayrıcalıklı olarak çağırılmaya ihtiyaç duymaz.

Şimdi bir örnek ile açıklayalım.

class Person:
def __init__(self,name,age):
self.name=name
self.age=age

Ali = Person("Ali",55)
print(Ali)

Burada görüldüğü gibi, print sonucumuz değişik bir çıktı veriyor. Aslında bu çıktı bize Ali objesini göstermekte. Bu çıktı bütün class objelerinin standart String çıktısıdır aslında.

Bunu daha mantıklı ve programımız için okunabilir bir şekle almamız gerekebilir. Bu durumda __str__ method’una ihtiyaç duyarız. Bu methodu class’ımızın içine implemente ettiğimizde artık yeni bir obje oluşturduğumuz taktirde bu methodun sonundaki return ifadesinin sonucunu döner.

Şimdi örnek ile gösterelim,

class Person:
def __init__(self,name,age):
self.name=name
self.age=age


def __str__(self):
return f"Person {self.name},{self.age}"

Ali = Person("Ali",55)
print(Ali)

Görüldüğü gibi biz method’u çağırmadığımız halde yeni bir obje oluşturduğumuzda __str__ methodu çalışmış oldu.

Bir diğer method olan __repr__ daha çok debug işlemlerinde kullanılıyor. __str__ ile benzer özellikleri taşır, ancak iki method da kodun içinde yazılmış ise, obje oluştuğunda __str__ methodu çalışır.

class Person:
def __init__(self,name,age):
self.name=name
self.age=age


#def __str__(self):
# return f"Person {self.name},{self.age}"

def __repr__(self):
return f"<Person('{self.name}',{self.age})>"

Ali = Person("Ali",55)
print(Ali)

Bir başka yazıda, görüşmek üzere.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir