Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
object[] is shorthand for object.__call__[]
Bàn luận
Python có một bộ các phương thức tích hợp và __call__
là một trong số đó.
Instance Created Instance is called via special method0Method cho phép các lập trình viên Python viết các lớp trong đó các phiên bản hoạt động như các chức năng và có thể được gọi giống như một hàm. Khi thể hiện được gọi là một hàm; Nếu phương pháp này được xác định,
Instance Created Instance is called via special method1 là tốc ký cho
Instance Created Instance is called via special method2.
Ví dụ 1:
Instance Created 2000
Instance Created 2001
Instance Created 2002
Instance Created 2003
Instance Created 2004
Instance Created Instance is called via special method3
Instance Created Instance is called via special method4
Instance Created 2000
Instance Created 2001
Instance Created 2002
@classmethod def fun[cls, arg1, arg2, ...]:3
Instance Created 2004
Instance Created Instance is called via special method5
Instance Created Instance is called via special method6
Instance Created Instance is called via special method7
Instance Created Instance is called via special method8
Instance Created Instance is called via special method9
@classmethod def fun[cls, arg1, arg2, ...]:8
Instance Created
Instance is called via special method
5Instance Created
Instance is called via special method
6 Instance Created
200
7Instance Created
Instance is called via special method
8Instance Created
Instance is called via special method
9
Instance Created Instance is called via special method
@classmethod
def fun[cls, arg1, arg2, ...]:
5@classmethod
def fun[cls, arg1, arg2, ...]:
6 @classmethod
def fun[cls, arg1, arg2, ...]:
7
Đầu ra:
Ví dụ 1:
Instance Created 2000
Instance Created 2001
Instance Created 2002
Instance Created 2003
Instance Created 2004
Instance Created Instance is called via special method3
Instance Created Instance is called via special method4
Instance Created Instance is called via special method5
Instance Created Instance is called via special method6
Instance Created Instance is called via special method7
Instance Created Instance is called via special method8
Instance Created Instance is called via special method9
Instance Created Instance is called via special method5
Instance Created Instance is called via special method6
Instance Created 2007
Instance Created Instance is called via special method8
Instance Created Instance is called via special method9
Name : mayank Age : 214
Name : mayank Age : 215
Name : mayank Age : 216
Name : mayank Age : 217
Instance Created 2004
Instance Created
Instance is called via special method
5Instance Created
Instance is called via special method
6 Instance Created
200
7Instance Created
Instance is called via special method
8Instance Created
Instance is called via special method
9
Instance Created 200
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
Instance Created Instance is called via special method3
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....0
Instance Created Instance is called via special method5
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....2
@classmethod def fun[cls, arg1, arg2, ...]:6
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....4
Instance Created Instance is called via special method5
Instance Created Instance is called via special method6
class C[object]: @classmethod def fun[cls, arg1, arg2, ...]: ....7
Instance Created 2000
Instance Created 2001
Instance Created 2002
21 25 True1
21 25 True2
21 25 True3
@classmethod def fun[cls, arg1, arg2, ...]:6
21 25 True5
21 25 True6
21 25 True7
Output:
Puchase course : DSA
Ví dụ 2: Tạo phương thức lớp bằng classMethod []Create class method using classmethod[]
Python3
Instance Created Instance is called via special method3
21 25 True9
Instance Created Instance is called via special method5
__call__
1@classmethod def fun[cls, arg1, arg2, ...]:6
__call__
3Instance Created Instance is called via special method5
Instance Created Instance is called via special method6
__call__
6Instance Created 2000
Instance Created 2001
Instance Created 2002
Instance Created Instance is called via special method00
Instance Created Instance is called via special method01
Instance Created Instance is called via special method02
@classmethod def fun[cls, arg1, arg2, ...]:6
21 25 True5
Instance Created Instance is called via special method05
Instance Created Instance is called via special method06
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
Instance Created Instance is called via special method07
Instance Created Instance is called via special method08
Instance Created Instance is called via special method09
Instance Created Instance is called via special method10
Instance Created Instance is called via special method3
Instance Created Instance is called via special method12
Instance Created Instance is called via special method5
Instance Created Instance is called via special method6
Instance Created Instance is called via special method7
Instance Created Instance is called via special method8
Instance Created Instance is called via special method17
Instance Created 2000
Instance Created Instance is called via special method8
Instance Created Instance is called via special method20
@classmethod def fun[cls, arg1, arg2, ...]:6
Instance Created Instance is called via special method22
Instance Created 2000
Instance Created Instance is called via special method8
Instance Created Instance is called via special method25
@classmethod def fun[cls, arg1, arg2, ...]:6
Instance Created Instance is called via special method27
Instance Created Instance is called via special method5
Instance Created Instance is called via special method29
Instance Created Instance is called via special method5
Instance Created Instance is called via special method6
Instance Created Instance is called via special method32
Instance Created Instance is called via special method33
Instance Created Instance is called via special method34
Instance Created 2000
Instance Created Instance is called via special method36
Instance Created Instance is called via special method33
Instance Created Instance is called via special method38
Instance Created Instance is called via special method39
Instance Created Instance is called via special method40
Instance Created Instance is called via special method5
Instance Created Instance is called via special method6
Instance Created Instance is called via special method43
Instance Created Instance is called via special method8
Instance Created Instance is called via special method9
Instance Created 2000
Instance Created 2001
Instance Created 2002
Instance Created Instance is called via special method49
Name : mayank Age : 216
Instance Created Instance is called via special method8
Instance Created Instance is called via special method52
Instance Created Instance is called via special method53
Name : mayank Age : 216
Instance Created Instance is called via special method8
Instance Created Instance is called via special method56
Instance Created Instance is called via special method57
@classmethod def fun[cls, arg1, arg2, ...]:6
Instance Created Instance is called via special method59
Instance Created Instance is called via special method60
Name : mayank Age : 216
Instance Created Instance is called via special method62
Instance Created 2004
Instance Created Instance is called via special method64
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ố.
Instance Created Instance is called via special method07
Instance Created Instance is called via special method08
Instance Created Instance is called via special method09
Instance Created Instance is called via special method10
Instance Created Instance is called via special method3
Instance Created Instance is called via special method12
Instance Created Instance is called via special method5
Instance Created Instance is called via special method6
Instance Created Instance is called via special method7
Instance Created Instance is called via special method8
Instance Created Instance is called via special method17
Instance Created 2000
Instance Created Instance is called via special method8
Instance Created Instance is called via special method20
@classmethod def fun[cls, arg1, arg2, ...]:6
Instance Created Instance is called via special method22
Instance Created 2000
Instance Created Instance is called via special method8
Instance Created Instance is called via special method25
@classmethod def fun[cls, arg1, arg2, ...]:6
Instance Created Instance is called via special method27
Instance Created Instance is called via special method5
Instance Created Instance is called via special method29
Instance Created Instance is called via special method5
Instance Created Instance is called via special method6
Instance Created Instance is called via special method32
Instance Created Instance is called via special method33
Instance Created Instance is called via special method34
Instance Created 2000
Instance Created Instance is called via special method36
Instance Created Instance is called via special method33
Instance Created Instance is called via special method38
Instance Created Instance is called via special method39
Instance Created Instance is called via special method40
Instance Created Instance is called via special method5
Instance Created 20000
Instance Created Instance is called via special method5
Instance Created Instance is called via special method6
Instance Created Instance is called via special method43
Instance Created Instance is called via special method8
Instance Created Instance is called via special method9
Instance Created Instance is called via special method57
@classmethod def fun[cls, arg1, arg2, ...]:6
Instance Created Instance is called via special method59
Instance Created Instance is called via special method60
Name : mayank Age : 216
Instance Created Instance is called via special method62
Instance Created 2004
Bộ trang trí @ClassMethod
Instance Created 20015
@classmethod def fun[cls, arg1, arg2, ...]:6
Instance Created 20017
Instance Created Instance is called via special method60
Name : mayank Age : 216
Instance Created 20020
Instance Created 2004
Instance Created 2001
Instance Created 20023
Instance Created 2001
Instance Created 20025
Instance Created 2001
Instance Created 20027
Instance Created 20028
Instance Created 20029
Output:
21 25 True