classmethod[] là một hàm sẵn có trong Python, trả về một phương thức lớp cho một hàm nhất định. ;
cú pháp. phương thức lớp [hàm]
Tham số. Hàm này chấp nhận tên hàm làm tham số
Loại trả lại. Hàm này trả về phương thức lớp đã chuyển đổi
Bạn cũng có thể sử dụng trình trang trí @classmethod cho định nghĩa classmethod
cú pháp.
@classmethod def fun[cls, arg1, arg2, ...]:
Ở đâu,
- niềm vui. chức năng cần được chuyển đổi thành một phương thức lớp
- lợi nhuận. một phương thức lớp cho chức năng
các phương thức classmethod[] được liên kết với một lớp chứ không phải là một đối tượng. Các phương thức lớp có thể được gọi bởi cả lớp và đối tượng. Các phương thức này có thể được gọi với một lớp hoặc với một đối tượng.
Phương thức lớp so với Phương thức tĩnh
- Phương thức lớp lấy cls làm tham số đầu tiên trong khi phương thức tĩnh không cần tham số cụ thể
- Một phương thức lớp có thể truy cập hoặc sửa đổi trạng thái lớp trong khi một phương thức tĩnh không thể truy cập hoặc sửa đổi nó
- Nói chung, các phương thức tĩnh không biết gì về trạng thái lớp. Chúng là các phương thức kiểu tiện ích nhận một số tham số và hoạt động dựa trên các tham số đó. Mặt khác, các phương thức lớp phải có lớp làm tham số
- Chúng tôi sử dụng trình trang trí @classmethod trong python để tạo một phương thức lớp và chúng tôi sử dụng trình trang trí @staticmethod để tạo một phương thức tĩnh trong python
Ví dụ về classmethod trong Python
ví dụ 1. Tạo một classmethod đơn giản
Trong ví dụ này, chúng ta sẽ xem cách tạo phương thức lớp, để làm điều này, chúng ta đã tạo một lớp có tên chuyên viên máy tính với biến thành viên là khóa học và tạo một hàm buy để in đối tượng
Bây giờ chúng tôi đã thông qua phương pháp chuyên viên máy tính. mua thành classmethod chuyển đổi các phương thức thành một phương thức lớp và sau đó chúng ta gọi hàm lớp mua mà không tạo đối tượng hàm
Python3
class
geeks:
course
Purchase course : DSA0
Purchase course : DSA1
Purchase course : DSA3
Purchase course : DSA4
Purchase course : DSA5_______1_______6
Purchase course : DSA7
Purchase course : DSA8_______1_______9
The name is : Geeksforgeeks0_______1_______0
The name is : Geeksforgeeks2
The name is : Geeksforgeeks3
The name is : Geeksforgeeks4
đầu ra
Purchase course : DSA
ví dụ 2. Tạo phương thức lớp bằng classmethod[]
Python3
The name is : Geeksforgeeks5
class
The name is : Geeksforgeeks7
The name is : Geeksforgeeks9
Name : mayank Age : 211_______1_______0
Name : mayank Age : 213
Name : mayank Age : 215
Purchase course : DSA3
Name : mayank Age : 218
Purchase course : DSA5_______1_______6
Purchase course : DSA7
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....2_______28_______3
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....4
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....5
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....6
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....7
Purchase course : DSA0
The name is : Geeksforgeeks2
21 25 True0
21 25 True1
21 25 True2
21 25 True3
đầu ra
The name is : Geeksforgeeks
ví dụ 3. Phương thức xuất xưởng sử dụng phương thức Lớp
Việc sử dụng hàm classmethod[] được sử dụng trong các mẫu thiết kế của nhà máy nơi chúng ta muốn gọi nhiều hàm với tên lớp chứ không phải một đối tượng
Python3
21 25 True4
21 25 True5
21 25 True6
21 25 True7
21 25 True8
21 25 True9
class
class
1
1_______3 class
4class
5class
6
Purchase course : DSA5_______75_______5
class
9Purchase course : DSA0
Name : mayank Age : 211
Purchase course : DSA5_______75_______5
geeks:
4Purchase course : DSA0
geeks:
6
geeks:
8
0
2
1_______3
5
6
7
Purchase course : DSA5_______77_______9
6course
1course
2 course
3
1_______3 course
6class
5course
8
Purchase course : DSA5_______1_______6
Purchase course : DSA7
Purchase course : DSA02_______1_______03
class
5Purchase course : DSA05
Purchase course : DSA06
Purchase course : DSA03
class
5Purchase course : DSA09
Purchase course : DSA10_______1_______0
Purchase course : DSA12
Purchase course : DSA13_______1_______03
Purchase course : DSA15
Purchase course : DSA16
Purchase course : DSA17
đầu ra
Name : mayank Age : 21
Trình trang trí @classmethod
Trình trang trí @classmethod là một trình trang trí chức năng tích hợp, là một biểu thức được đánh giá sau khi chức năng của bạn được xác định. Kết quả của đánh giá đó làm lu mờ định nghĩa chức năng của bạn.
Một phương thức lớp nhận lớp làm đối số đầu tiên ngầm định, giống như một phương thức thể hiện nhận thể hiện
cú pháp
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....
Ở đâu,
- niềm vui. chức năng cần được chuyển đổi thành một phương thức lớp
- lợi nhuận. một phương thức lớp cho chức năng
Ghi chú
- Một phương thức lớp là một phương thức được liên kết với lớp và không phải là đối tượng của lớp
- Họ có quyền truy cập vào trạng thái của lớp vì nó nhận tham số lớp trỏ đến lớp chứ không phải thể hiện đối tượng
- Nó có thể sửa đổi trạng thái lớp sẽ áp dụng trên tất cả các phiên bản của lớp. Ví dụ: nó có thể sửa đổi một biến lớp có thể áp dụng cho tất cả các trường hợp
Trong ví dụ dưới đây, chúng tôi sử dụng phương pháp tĩnh [] và phương pháp lớp [] để kiểm tra xem một người có phải là người lớn hay không