Trong lập trình hướng đối tượng, chúng ta sử dụng các phương thức thể hiện và phương thức lớp. Bên trong một Class, chúng ta có thể định nghĩa 3 loại phương thức sau
- phương thức sơ thẩm. Được sử dụng để truy cập hoặc sửa đổi trạng thái đối tượng. Nếu chúng ta sử dụng các biến thể hiện bên trong một phương thức, thì các phương thức đó được gọi là phương thức thể hiện. Nó phải có tham số
Jessa's age is: 20
5 để chỉ đối tượng hiện tại
John's age is: 26 - phương pháp lớp. Được sử dụng để truy cập hoặc sửa đổi trạng thái lớp. Trong triển khai phương thức, nếu chúng ta chỉ sử dụng các biến lớp, thì loại phương thức đó chúng ta nên khai báo như một phương thức lớp. Phương thức lớp có tham số
Jessa's age is: 20
6 đề cập đến lớp
John's age is: 26 - phương pháp tĩnh. Đó là một phương pháp tiện ích chung thực hiện một nhiệm vụ trong sự cô lập. Bên trong phương thức này, chúng tôi không sử dụng biến đối tượng hoặc lớp vì phương thức tĩnh này không nhận bất kỳ tham số nào như
Jessa's age is: 20
5 và
John's age is: 26Jessa's age is: 20
6
John's age is: 26
Ngoài ra, hãy đọc Phương thức lớp Python so với phương thức tĩnh so với phương thức sơ thẩm
Sau khi đọc bài viết này, bạn sẽ học được
- Cách tạo và sử dụng các phương thức lớp trong Python
- Tạo phương thức lớp bằng cách sử dụng trình trang trí
Jessa's age is: 20
9 và hàm
John's age is: 26
0classmethod[function]
- cách tự động thêm hoặc xóa các phương thức lớp
Mục lục
- Phương thức lớp trong Python là gì
- Xác định phương thức lớp
- ví dụ 1. Tạo phương thức lớp bằng Trình trang trí @classmethod
- ví dụ 2. Tạo phương thức lớp bằng hàm classmethod[]
- ví dụ 3. Truy cập các biến lớp trong các phương thức lớp
- Phương thức lớp trong kế thừa
- Tự động thêm phương thức lớp vào một lớp
- Tự động xóa các phương thức lớp
Phương thức lớp trong Python là gì
Các phương thức lớp là các phương thức được gọi trên chính lớp đó, không phải trên một thể hiện đối tượng cụ thể. Do đó, nó thuộc về một cấp độ lớp và tất cả các thể hiện của lớp đều chia sẻ một phương thức lớp
- Một phương thức lớp được liên kết với lớp chứ không phải đối tượng của lớp. Nó chỉ có thể truy cập các biến lớp
- Nó có thể sửa đổi trạng thái lớp bằng cách thay đổi giá trị của biến lớp sẽ áp dụng trên tất cả các đối tượng lớp
Trong triển khai phương thức, nếu chúng ta chỉ sử dụng các biến lớp, chúng ta nên khai báo các phương thức đó là phương thức lớp. Phương thức lớp có tham số đầu tiên là
Jessa's age is: 206, tham chiếu đến lớp
John's age is: 26
Các phương thức lớp được sử dụng khi chúng ta xử lý các phương thức xuất xưởng. Các phương thức xuất xưởng là những phương thức trả về một đối tượng lớp cho các trường hợp sử dụng khác nhau. Do đó, các phương thức xuất xưởng tạo ra các triển khai cụ thể của một giao diện chung
Phương thức lớp có thể được gọi bằng cách sử dụng
classmethod[function]
2 cũng như bằng cách sử dụng một đối tượng của lớpXác định phương thức lớp
Bất kỳ phương thức nào chúng ta tạo trong một lớp sẽ tự động được tạo dưới dạng phương thức thể hiện. Chúng ta phải nói rõ ràng với Python rằng đó là một phương thức lớp sử dụng trình trang trí
Jessa's age is: 209 hoặc hàm
John's age is: 26
classmethod[function]
0Các phương thức của lớp được xác định bên trong một lớp và nó khá giống với việc xác định một hàm thông thường
Giống như, bên trong một phương thức thể hiện, chúng tôi sử dụng từ khóa
Jessa's age is: 205 để truy cập hoặc sửa đổi các biến thể hiện. Tương tự bên trong phương thức lớp, chúng tôi sử dụng từ khóa
John's age is: 26
Jessa's age is: 206 làm tham số đầu tiên để truy cập các biến lớp. Do đó, phương thức lớp cho phép chúng ta kiểm soát việc thay đổi trạng thái lớp
John's age is: 26
- Bạn có thể sử dụng một biến được đặt tên khác cho
Jessa's age is: 20
6, nhưng điều này không được khuyến khích vì self là quy ước được đề xuất trong Python
John's age is: 26 - Phương thức lớp chỉ có thể truy cập các thuộc tính lớp, không phải thuộc tính thể hiện
ví dụ 1. Tạo phương thức lớp bằng Trình trang trí @classmethod
Để tạo một phương thức làm phương thức lớp, hãy thêm trình trang trí
Jessa's age is: 209 trước định nghĩa phương thức và thêm
John's age is: 26
Jessa's age is: 206 làm tham số đầu tiên cho phương thức
John's age is: 26
Trình trang trí
Jessa's age is: 209 là một trình trang trí chức năng tích hợp. Trong Python, chúng tôi sử dụng trình trang trí
John's age is: 26
Jessa's age is: 209 để khai báo một phương thức là một phương thức lớp. Trình trang trí
John's age is: 26
Jessa's age is: 209 là một biểu thức được đánh giá sau khi chức năng của chúng tôi được xác định
John's age is: 26
Hãy xem cách tạo một phương thức xuất xưởng bằng phương thức lớp. Trong ví dụ này, chúng ta sẽ tạo một đối tượng lớp Student bằng phương thức lớp
Jessa's age is: 208
John's age is: 26
đầu ra
Jessa's age is: 20
John's age is: 26
- Trong ví dụ trên, chúng ta đã tạo hai đối tượng, một đối tượng sử dụng hàm tạo và đối tượng thứ hai sử dụng phương thức
Jessa's age is: 20
03
John's age is: 26 - Hàm tạo nhận hai đối số name và age. Mặt khác, phương thức lớp lấy
Jessa's age is: 20
6,
John's age is: 26Jessa's age is: 20
05 và
John's age is: 26Jessa's age is: 20
06 và trả về một thể hiện của lớp không có gì ngoài một đối tượng mới
John's age is: 26 - Trình trang trí
Jessa's age is: 20
9 được sử dụng để chuyển đổi phương thức
John's age is: 26Jessa's age is: 20
03 thành phương thức lớp
John's age is: 26 - Phương thức
Jessa's age is: 20
03 lấy lớp Student [
John's age is: 26Jessa's age is: 20
6] làm tham số đầu tiên và trả về hàm tạo bằng cách gọi
John's age is: 26Jessa's age is: 20
81, tương đương với
John's age is: 26Jessa's age is: 20
82
John's age is: 26
ví dụ 2. Tạo phương thức lớp bằng hàm classmethod[]
Ngoài một công cụ trang trí, hàm tích hợp sẵn
classmethod[function]
0 được sử dụng để chuyển đổi một phương thức bình thường thành một phương thức lớp. Jessa's age is: 2084 là một hàm có sẵn trong Python, hàm này trả về một phương thức lớp cho một hàm nhất định
John's age is: 26
cú pháp
classmethod[function]
Jessa's age is: 20
85. Đó là tên của phương thức bạn muốn chuyển thành phương thức lớp
John's age is: 26- Nó trả về phương thức lớp đã chuyển đổi
Ghi chú. Phương thức bạn muốn chuyển thành phương thức lớp phải chấp nhận lớp [
Jessa's age is: 206] làm đối số đầu tiên, giống như phương thức thể hiện nhận thể hiện [
John's age is: 26
Jessa's age is: 205]
John's age is: 26
Như chúng ta đã biết, phương thức lớp được liên kết với lớp chứ không phải đối tượng. Vì vậy, chúng ta có thể gọi phương thức lớp bằng cả cách gọi lớp và đối tượng
Hàm
classmethod[function]
0 là cách cũ hơn để tạo phương thức lớp trong Python. Trong phiên bản Python mới hơn, chúng ta nên sử dụng trình trang trí Jessa's age is: 209 để tạo một phương thức lớp
John's age is: 26
Thí dụ. Tạo phương thức lớp bằng hàm
classmethod[function]
0Jessa's age is: 200
John's age is: 26
đầu ra
Jessa's age is: 208
John's age is: 26
ví dụ 3. Truy cập các biến lớp trong các phương thức lớp
Sử dụng phương thức của lớp, chúng ta chỉ có thể truy cập hoặc sửa đổi các biến của lớp. Hãy xem cách truy cập và sửa đổi các biến lớp trong phương thức lớp
Các biến lớp được chia sẻ bởi tất cả các phiên bản của một lớp. Sử dụng phương thức lớp, chúng ta có thể sửa đổi trạng thái lớp bằng cách thay đổi giá trị của biến lớp sẽ áp dụng trên tất cả các đối tượng lớp
Jessa's age is: 201
John's age is: 26
đầu ra
Jessa's age is: 202
John's age is: 26
Phương thức lớp trong kế thừa
Trong kế thừa, phương thức lớp của lớp cha có sẵn cho lớp con
Hãy tạo một lớp Xe có chứa một phương thức lớp xuất xưởng from_price[] sẽ trả về một thể hiện Xe từ một mức giá. Khi chúng ta gọi cùng một phương thức bằng tên lớp của đứa trẻ, nó sẽ trả về đối tượng lớp của đứa trẻ
Bất cứ khi nào chúng ta dẫn xuất một lớp từ lớp cha có phương thức lớp thì nó sẽ tạo ra thể hiện chính xác của lớp dẫn xuất. Ví dụ sau đây cho thấy phương thức lớp hoạt động như thế nào trong kế thừa
Thí dụ
Jessa's age is: 203
John's age is: 26
đầu ra
Jessa's age is: 204
John's age is: 26
Tự động thêm phương thức lớp vào một lớp
Thông thường, chúng ta thêm các phương thức lớp vào thân lớp khi định nghĩa một lớp. Tuy nhiên, Python là một ngôn ngữ động cho phép chúng ta thêm hoặc xóa các phương thức trong thời gian chạy. Do đó, sẽ hữu ích khi bạn muốn mở rộng chức năng của lớp mà không thay đổi cấu trúc cơ bản của nó vì nhiều hệ thống sử dụng cùng một cấu trúc
Chúng ta cần sử dụng hàm
classmethod[function]
0 để thêm một phương thức lớp mới vào một lớpThí dụ
Hãy xem cách thêm một phương thức lớp mới trong lớp Sinh viên khi chạy
Jessa's age is: 206
John's age is: 26
đầu ra
Jessa's age is: 200
John's age is: 26
Tự động xóa các phương thức lớp
Chúng ta có thể tự động xóa các phương thức lớp khỏi lớp. Trong Python, có hai cách để làm điều đó
- Bằng cách sử dụng toán tử
Jessa's age is: 20
12
John's age is: 26 - Bằng cách sử dụng phương pháp
Jessa's age is: 20
13
John's age is: 26
Bằng cách sử dụng toán tử
Jessa's age is: 2012
John's age is: 26
Toán tử
Jessa's age is: 2012 xóa phương thức thể hiện được lớp thêm vào. Sử dụng cú pháp
John's age is: 26
Jessa's age is: 2016 để xóa phương thức lớp
John's age is: 26
Thí dụ
Trong ví dụ này, chúng ta sẽ xóa phương thức lớp có tên
Jessa's age is: 2017 khỏi lớp Sinh viên. Nếu bạn cố truy cập sau khi xóa nó, bạn sẽ gặp Lỗi thuộc tính
John's age is: 26
Jessa's age is: 201
John's age is: 26
đầu ra
Jessa's age is: 202
John's age is: 26
Bằng cách sử dụng phương pháp
Jessa's age is: 2018
John's age is: 26
Phương thức
Jessa's age is: 2013 được sử dụng để xóa thuộc tính và phương thức được đặt tên khỏi lớp. Đối số của
John's age is: 26
Jessa's age is: 2020 là một đối tượng và chuỗi. Chuỗi phải là tên của thuộc tính hoặc tên phương thức
John's age is: 26