Nhận lớp phương thức Python

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 :  DSA
0
Purchase course :  DSA
1

 

    

Purchase course :  DSA
3
Purchase course :  DSA
4

Purchase course :  DSA
5_______1_______6
Purchase course :  DSA
7
Purchase course :  DSA
8_______1_______9

 

 

The name is :  Geeksforgeeks
0_______1_______0
The name is :  Geeksforgeeks
2
The name is :  Geeksforgeeks
3

The name is :  Geeksforgeeks
4

đầu ra

Purchase course :  DSA

ví dụ 2. Tạo phương thức lớp bằng classmethod[]

Python3




The name is :  Geeksforgeeks
5

 

class

The name is :  Geeksforgeeks
7

 

    

The name is :  Geeksforgeeks
9

    

Name :  mayank Age :  21
1_______1_______0
Name :  mayank Age :  21
3

 

    

Name :  mayank Age :  21
5

    

Purchase course :  DSA
3
Name :  mayank Age :  21
8

Purchase course :  DSA
5_______1_______6
Purchase course :  DSA
7
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 :  DSA
0
The name is :  Geeksforgeeks
2
21
25
True
0

 

21
25
True
1

21
25
True
2

21
25
True
3

đầ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 thay vì một đối tượng

Python3




21
25
True
4

21
25
True
5

21
25
True
6
21
25
True
7
21
25
True
8
21
25
True
9

 

class class1

    1_______3 class4class5class6

Purchase course :  DSA
5_______75_______5class9
Purchase course :  DSA
0
Name :  mayank Age :  21
1

Purchase course :  DSA
5_______75_______5geeks:4
Purchase course :  DSA
0 geeks:6

 

    geeks:8

        0

        2

    1_______3     5    6    7

Purchase course :  DSA
5_______77_______9     6course1course2 course3

 

    1_______3 course6class5course8

Purchase course :  DSA
5_______1_______6
Purchase course :  DSA
7
Purchase course :  DSA
02_______1_______03class5
Purchase course :  DSA
05
Purchase course :  DSA
06
Purchase course :  DSA
03class5
Purchase course :  DSA
09

 

Purchase course :  DSA
10_______1_______0
Purchase course :  DSA
12
Purchase course :  DSA
13_______1_______03
Purchase course :  DSA
15
Purchase course :  DSA
16

Purchase course :  DSA
17

đầ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

__ nhận __ trong Python là gì?

__get__ " Được gọi để lấy thuộc tính của lớp chủ sở hữu [quyền truy cập thuộc tính lớp] hoặc của một thể hiện của lớp đó [quyền truy cập thuộc tính thể hiện]."

__ lớp __ trong Python là gì?

__class__ là một thuộc tính trên đối tượng đề cập đến lớp mà đối tượng được tạo ra từ đó . một. __lớp__ # Đầu ra.

@classmethod trong Python là gì?

Phương thức lớp[] 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 đã cho . ; . classmethod[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.

Chủ Đề