Pengantar Pemrograman Berorientasi Objek di Python
George Boorman
Curriculum Manager, DataCamp
class Customer:
def __init__(self, acc_id, name):
self.acc_id, self.name = acc_id, name
def __eq__(self, other):
# Mengembalikan True jika objek punya atribut yang sama
# dan tipe yang sama
return (self.acc_id == other.acc_id) and (self.name == other.name)\
and (type(self) == type(other))

class BankAccount:
def __init__(self, number, balance=0):
self.balance = balance
self.number = number
def withdraw(self, amount):
self.balance -= amount
# Definisikan __eq__ yang mengembalikan True
# jika atribut number sama
def __eq__(self, other):
print("BankAccount __eq__() called")
return self.number == other.number
class SavingsAccount(BankAccount):
def __init__(self, number, balance, interest_rate):
BankAccount.__init__(self, number,
balance)
self.interest_rate = interest_rate
# Definisikan __eq__ yang mengembalikan True
# jika atribut number sama
def __eq__(self, other):
print("SavingsAccount __eq__() called")
return self.number == other.number
ba = BankAccount(123, 10000)
sa = SavingsAccount(456, 2000, 0.05)
# Bandingkan kedua objek
ba == sa
SavingsAccount __eq__() called
False
sa == ba
SavingsAccount __eq__() called
False
class Customer:
def __init__(self, name, balance):
self.name, self.balance = name, balance
cust = Customer("Maryam Azar", 3000)
print(cust)
<__main__.Customer at 0x1f8598e2240>
a_list = [1,2,3]
print(a_list)
[1, 2, 3]
__str__()print(obj), str(obj)print(np.array([1,2,3]))
[1 2 3]
str(np.array([1,2,3]))
'[1 2 3]'
__repr__()repr(obj), saat mencetak di konsolrepr(np.array([1,2,3]))
'array([1,2,3])'
np.array([1,2,3])
array([1, 2, 3])
print()class Customer: def __init__(self, name, balance): self.name = name self.balance = balance def __repr__(self):# Perhatikan tanda '...' di sekitar name return f"Customer('{self.name}', {self.balance})"cust = Customer("Maryam Azar", 3000) # Akan memanggil __repr__() secara implisit cust
Customer('Maryam Azar', 3000)
class Customer:
def __init__(self, name, balance):
self.name = name
self.balance = balance
def __str__(self):
cust_str = f"""
Customer:
name: {self.name}
balance: {self.balance}
"""
return cust_str
cust = Customer("Maryam Azar", 3000)
# Akan memanggil __str__() secara implisit
print(cust)
Customer:
name: Maryam Azar
balance: 3000
Pengantar Pemrograman Berorientasi Objek di Python