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 .;classmethod[] is an inbuilt function in Python, which returns a class method for a given function.;
Cú pháp: classMethod [hàm] classmethod[function]
Tham số: Hàm này chấp nhận tên hàm là tham số.This function accepts the function name as a parameter.
Loại trả về: Hàm này trả về phương thức lớp được chuyển đổi.This function returns the converted class method.
Bạn cũng có thể sử dụng công cụ trang trí @ClassMethod cho định nghĩa ClassMethod.
Syntax:
@classmethod def fun[cls, arg1, arg2, ...]:
Where,
- Vui vẻ: Chức năng cần được chuyển đổi thành phương pháp lớp the function that needs to be converted into a class method
- Trả về: Một phương thức lớp cho chức năng. a class method for function.
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. & Nbsp;
Phương pháp lớp so với phương pháp tĩnh
- Một 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ể.
- Phương thức lớp có thể truy cập hoặc sửa đổi trạng thái lớp trong khi phương thức tĩnh có thể truy cập hoặc sửa đổi nó.
- Nói chung, các phương pháp tĩnh không biết gì về trạng thái lớp. Chúng là các phương thức loại tiện ích lấy 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 dưới dạng tham số.
- Chúng tôi sử dụng công cụ trang trí @ClassMethod trong Python để tạo phương thức lớp và chúng tôi sử dụng công cụ trang trí @staticmethod để tạo phương thức tĩnh trong Python.
Ví dụ về ClassMethod trong Python
Ví dụ 1: Tạo một lớp đơn giản
Trong ví dụ này, chúng ta sẽ thấy cách tạo ClassMethod, vì điều này, chúng tôi đã tạo một lớp có tên Geek với khóa học biến thành viên và tạo một giao dịch mua chức năng in đối tượng.
Bây giờ chúng tôi đã chuyển phương thức Geek.purchase thành ClassMethod chuyển đổi các phương thức thành phương thức lớp và sau đó chúng tôi gọi mua chức năng lớp mà không tạo đối tượng chức năng.
Python3
class
geeks:
course
____10
Puchase course : DSA1
Puchase course : DSA3
Puchase course : DSA4
Puchase course : DSA5
Puchase course : DSA6
Puchase course : DSA7
Puchase course : DSA8
Puchase course : DSA9
The name is : Geeksforgeeks0____10
The name is : Geeksforgeeks223
The name is : Geeksforgeeks4
Output:
Puchase course : DSA
Ví dụ 2: Tạo phương thức lớp bằng classMethod []Create class method using classmethod[]
Python3
class
The name is : Geeksforgeeks6
The name is : Geeksforgeeks8
Puchase course : DSA0
Name : mayank Age : 210
Puchase course : DSA3
Name : mayank Age : 213
Puchase course : DSA5
Puchase course : DSA6
Puchase course : DSA7
Name : mayank Age : 217
Name : mayank Age : 218
Name : mayank Age : 219
Puchase course : DSA0
The name is : Geeksforgeeks22
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....2
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....3
Output:
The name is : Geeksforgeeks
Ví dụ 3: Phương pháp nhà máy sử dụng phương pháp lớp
Việc sử dụng hàm classMethod [] được sử dụng trong các mẫu thiết kế nhà máy nơi chúng tôi muốn gọi nhiều chức năng với tên lớp chứ không phải là một đối tượng.
Python3
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
class
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....9
Puchase course : DSA3
21 25 True2
21 25 True3
21 25 True4
Puchase course : DSA5
21 25 True3
21 25 True7____10
21 25 True9
Puchase course : DSA5
21 25 True3
class
2____10 class
4
class
6
Puchase course : DSA3
class
9geeks:
0geeks:
1Puchase course : DSA5
geeks:
3 geeks:
0geeks:
5geeks:
6 geeks:
7
Puchase course : DSA3
021 25 True3
2Puchase course : DSA5
Puchase course : DSA6
Puchase course : DSA7
6
721 25 True3
9course
0
721 25 True3
course
3course
4
Puchase course : DSA0
course
6course
7
7course
9Puchase course : DSA00
Puchase course : DSA01
Output:
Name : mayank Age : 21
Bộ trang trí @ClassMethod
Bộ trang trí @ClassMethod là một bộ 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 việc đánh giá đó bóng tối định nghĩa chức năng của bạn. & Nbsp;
Một phương thức lớp nhận lớp là đối số đầu tiên ngầm, giống như một phương thức thể hiện nhận được thể hiện.
Syntax:
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....
Where,
- Vui vẻ: Chức năng cần được chuyển đổi thành phương pháp lớp the function that needs to be converted into a class method
- Trả về: Một phương thức lớp cho chức năng. a class method for function.
Note:
- 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. & Nbsp;
- Phương pháp lớp so với phương pháp tĩnh
- Một 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ể.
Phương thức lớp có thể truy cập hoặc sửa đổi trạng thái lớp trong khi phương thức tĩnh có thể truy cập hoặc sửa đổi nó.
Nói chung, các phương pháp tĩnh không biết gì về trạng thái lớp. Chúng là các phương thức loại tiện ích lấy 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 dưới dạng tham số.
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
class
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....9
Puchase course : DSA3
21 25 True2
21 25 True3
21 25 True4
Puchase course : DSA5
21 25 True3
21 25 True7____10
21 25 True9
Puchase course : DSA5
21 25 True3
class
2____10 class
4
class
6
Puchase course : DSA3
class
9geeks:
0geeks:
1Puchase course : DSA5
geeks:
3 geeks:
0geeks:
5geeks:
6 geeks:
7
Puchase course : DSA37
Puchase course : DSA3
021 25 True3
2course
4
Puchase course : DSA0
course
6course
7
7course
9Puchase course : DSA00
Bộ trang trí @ClassMethod
Bộ trang trí @ClassMethod là một bộ 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 việc đánh giá đó bóng tối định nghĩa chức năng của bạn. & Nbsp;
Puchase course : DSA6
Puchase course : DSA60
Puchase course : DSA6
Puchase course : DSA62
Puchase course : DSA6
Puchase course : DSA64
Puchase course : DSA65
Puchase course : DSA66
Output:
21 25 True