Lập trình hướng đối tượng trong Python
Alex Yarosh
Content Quality Analyst @ DataCamp
class Customer: def __init__(self, name, balance): self.name, self.balance = name, balance customer1 = Customer("Maryam Azar", 3000) customer2 = Customer("Maryam Azar", 3000)customer1 == customer2
False
class Customer:
def __init__(self, name, balance, id):
self.name, self.balance = name, balance
self.id = id
customer1 = Customer("Maryam Azar", 3000, 123)
customer2 = Customer("Maryam Azar", 3000, 123)
customer1 == customer2
False
customer1 = Customer("Maryam Azar", 3000, 123)
customer2 = Customer("Maryam Azar", 3000, 123)
print(customer1)
<__main__.Customer at 0x1f8598e2e48>
print(customer2)
<__main__.Customer at 0x1f8598e2240>
import numpy as np
# Hai mảng khác nhau nhưng dữ liệu giống nhau
array1 = np.array([1,2,3])
array2 = np.array([1,2,3])
array1 == array2
True
class Customer: def __init__(self, id, name): self.id, self.name = id, name# Được gọi khi dùng == def __eq__(self, other):# In chẩn đoán print("__eq__() is called") # Trả về True nếu mọi thuộc tính khớp return (self.id == other.id) and \ (self.name == other.name)
__eq__() được gọi khi so sánh 2 đối tượng bằng ==self và other - các đối tượng cần so sánh# Hai đối tượng bằng nhau
customer1 = Customer(123, "Maryam Azar")
customer2 = Customer(123, "Maryam Azar")
customer1 == customer2
__eq__() is called
True
# Hai đối tượng khác nhau - khác id
customer1 = Customer(123, "Maryam Azar")
customer2 = Customer(456, "Maryam Azar")
customer1 == customer2
__eq__() is called
False
| Toán tử | Phương thức |
|---|---|
== |
__eq__() |
!= |
__ne__() |
>= |
__ge__() |
<= |
__le__() |
> |
__gt__() |
< |
__lt__() |
__hash__() để dùng đối tượng làm khóa dict và trong setLập trình hướng đối tượng trong Python