Operatör Aşırı Yükleme: String Temsili

Python'da Nesne Yönelimli Programlama

Alex Yarosh

Content Quality Analyst @ DataCamp

Bir Nesneyi Yazdırma

class Customer:
  def __init__(self, name, balance):
    self.name, self.balance = name, balance 

cust = Customer("Maryam Azar", 3000)
print(cust)
<__main__.Customer at 0x1f8598e2240>

 

import numpy as np

arr = np.array([1,2,3])
print(arr)
[1 2 3]
Python'da Nesne Yönelimli Programlama

__str__()

  • print(obj), str(obj)
print(np.array([1,2,3]))
[1 2 3]
str(np.array([1,2,3]))
[1 2 3]
  • gayri resmi, son kullanıcı için
  • string temsili

__repr__()

  • repr(obj), konsolda yazdırma
repr(np.array([1,2,3]))
array([1,2,3])
np.array([1,2,3])
array([1,2,3])
  • resmi, geliştirici için
  • reprodüklenebilir representasyon
  • print() için yedek
Python'da Nesne Yönelimli Programlama

Uygulama: str

class Customer:
  def __init__(self, name, balance):
    self.name, self.balance = name, balance 

  def __str__(self):
    cust_str = """
    Müşteri:
      isim: {name}
      bakiye: {balance}
    """.format(name = self.name, \
               balance = self.balance)
    return cust_str

cust = Customer("Maryam Azar", 3000)

# __str__() otomatik olarak çağrılacak
print(cust)
Müşteri:
  isim: Maryam Azar
  bakiye: 3000

Python'da Nesne Yönelimli Programlama

Uygulama: repr

class Customer:
  def __init__(self, name, balance):
    self.name, self.balance = name, balance 

  def __repr__(self):
    # İsmin etrafındaki '...' işaretine dikkat edin 
    return "Customer('{name}', {balance})".format(name = self.name, balance = self.balance)

cust = Customer("Maryam Azar", 3000) cust # <--- # __repr__() otomatik olarak çağrılacak
Customer('Maryam Azar', 3000) # <--- Customer(Maryam Azar, 3000) değil
  • __repr__() çıktısında string argümanları tırnak içine alın
Python'da Nesne Yönelimli Programlama

Hadi pratik yapalım!

Python'da Nesne Yönelimli Programlama

Preparing Video For Download...