Các lớp và đối tượng Python
Lớp/Đối tượng Python
Python là một ngôn ngữ lập trình hướng đối tượng.
Hầu hết mọi thứ trong Python đều là một đối tượng, với các thuộc tính và phương thức của nó.
Lớp giống như một hàm tạo đối tượng hoặc một "bản thiết kế" để tạo đối tượng.
Tạo một lớp học
Để tạo một lớp, hãy sử dụng từ khóa class
:
Tạo đối tượng
Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo các đối tượng:
Hàm __init__()
Các ví dụ trên là các lớp và đối tượng ở dạng đơn giản nhất và không thực sự hữu ích trong các ứng dụng thực tế.
Để hiểu ý nghĩa của các lớp, chúng ta phải hiểu hàm __init__() có sẵn.
Tất cả các lớp đều có một hàm gọi là __init__(), hàm này luôn được thực thi khi lớp được khởi tạo.
Sử dụng hàm __init__() để gán giá trị cho thuộc tính đối tượng hoặc các thao tác khác cần thực hiện khi đối tượng được tạo:
Ví dụ
Tạo một lớp có tên Person, sử dụng hàm __init__() để gán giá trị cho tên và tuổi:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John",
36)
print(p1.name)
print(p1.age)
Hãy tự mình thử » Lưu ý: Hàm __init__()
được gọi tự động mỗi khi lớp được sử dụng để tạo đối tượng mới.
Hàm __str__()
Hàm __str__() kiểm soát những gì sẽ được trả về khi đối tượng lớp được biểu diễn dưới dạng một chuỗi.
Nếu hàm __str__() không được đặt, biểu diễn chuỗi của đối tượng sẽ được trả về:
Ví dụ
Biểu diễn chuỗi của một đối tượng KHÔNG CÓ hàm __str__():
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John",
36)
print(p1)
Hãy tự mình thử »Ví dụ
Biểu diễn chuỗi của một đối tượng VỚI hàm __str__():
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}({self.age})"
p1 = Person("John",
36)
print(p1)
Hãy tự mình thử »Phương thức đối tượng
Các đối tượng cũng có thể chứa các phương thức. Các phương thức trong đối tượng là các hàm thuộc về đối tượng.
Chúng ta hãy tạo một phương thức trong lớp Person:
Ví dụ
Chèn một hàm in lời chào và thực thi nó trên đối tượng p1:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
p1 = Person("John",
36)
p1.myfunc()
Hãy tự mình thử » Lưu ý: Tham số self
là tham chiếu đến phiên bản hiện tại của lớp và được sử dụng để truy cập các biến thuộc về lớp.
Thông số bản thân
Tham số self
là tham chiếu đến phiên bản hiện tại của lớp và được sử dụng để truy cập các biến thuộc lớp.
Nó không cần phải được đặt tên là self
, bạn có thể gọi nó là bất cứ tên gì bạn thích, nhưng nó phải là tham số đầu tiên của bất kỳ hàm nào trong lớp:
Ví dụ
Sử dụng các từ mysillyobject và abc thay vì self :
class Person:
def __init__(mysillyobject, name, age):
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
print("Hello my name is " + abc.name)
p1 = Person("John",
36)
p1.myfunc()
Hãy tự mình thử »Sửa đổi thuộc tính đối tượng
Bạn có thể sửa đổi thuộc tính trên các đối tượng như thế này:
Xóa thuộc tính đối tượng
Bạn có thể xóa thuộc tính trên đối tượng bằng cách sử dụng từ khóa del
:
Xóa đối tượng
Bạn có thể xóa các đối tượng bằng cách sử dụng từ khóa del
:
Tuyên bố vượt qua
định nghĩa class
không được để trống, nhưng nếu vì lý do nào đó bạn có định nghĩa class
không có nội dung, hãy đưa vào câu lệnh pass
để tránh gặp lỗi.