Hướng dẫn what is classmethod in python? - classmethod trong python là gì?
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.; Show
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,
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
Ví dụ về ClassMethod trong PythonVí dụ 1: Tạo một lớp đơn giảnTrong 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
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
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ớpViệ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. Python3class 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 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
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 3
Puchase course : DSA0 course 6course 7 7course 9Puchase course : DSA00 Puchase course : DSA01 Output: Name : mayank Age : 21 Bộ trang trí @ClassMethodBộ 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,
Note:
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 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
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 2
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 Mục đích của ClassMethod trong Python là gì?Trong Python, bộ trang trí @ClassMethod được sử dụng để khai báo một phương thức trong lớp như một phương thức lớp có thể được gọi bằng cách sử dụng className.methodName (). Phương pháp lớp cũng có thể được gọi bằng cách sử dụng một đối tượng của lớp. @ClassMethod là một giải pháp thay thế cho hàm classMethod ().to declare a method in the class as a class method that can be called using ClassName. MethodName() . The class method can also be called using an object of the class. The @classmethod is an alternative of the classmethod() function.
Khi nào bạn nên sử dụng một python classmethod?Bạn có thể sử dụng các phương thức lớp cho bất kỳ phương thức nào không bị ràng buộc với một trường hợp cụ thể mà là lớp.Trong thực tế, bạn thường sử dụng các phương thức lớp cho các phương thức tạo ra một thể hiện của lớp.Khi một phương thức tạo một thể hiện của lớp và trả về nó, phương thức được gọi là phương thức nhà máy.any methods that are not bound to a specific instance but the class. In practice, you often use class methods for methods that create an instance of the class. When a method creates an instance of the class and returns it, the method is called a factory method.
Lợi thế của classmethod trong Python là gì?Nó làm cho rõ ràng hơn rằng phương pháp không sử dụng bất kỳ trạng thái nào từ trường hợp, thường được đặt tên là bản thân.Ngoài ra, nó có nghĩa là bạn có thể kiểm tra nó trên lớp mà không cần tạo một thể hiện., usually named self . Also it means you can test it on the class without creating an instance.
Sự khác biệt giữa ClassMethod và StaticMethod trong Python là gì?Phương thức lớp có thể truy cập và sửa đổi phương thức trạng thái lớp. Không thể truy cập hoặc sửa đổi trạng thái lớp.Phương thức lớp lấy lớp làm tham số để biết về trạng thái của lớp đó.Phương pháp tĩnh không biết về trạng thái lớp. Static Method cannot access or modify the class state. The class method takes the class as parameter to know about the state of that class. Static methods do not know about class state. |