Khi nào thì bạn nên sử dụng phương thức lớp python?
Một phương thức lớp là một phương thức được chia sẻ giữa tất cả các đối tượng. Để gọi một phương thức của lớp, hãy đặt lớp đó làm đối số đầu tiên Show
Các phương thức của lớp có thể được gọi từ các thể hiện và từ chính lớp đó. Tất cả đều sử dụng cùng một phương pháp. Phương thức có thể sử dụng các biến và phương thức của lớp khóa học liên quan. Hoàn thành khóa học & bài tập lập trình Python Thí dụví dụ phương pháp lớp họcĐể biến một phương thức thành một classmethod, hãy thêm @classmethod trước định nghĩa phương thức. Là tham số, phương thức luôn lấy lớp Ví dụ dưới đây định nghĩa một phương thức lớp. Phương thức lớp sau đó có thể được sử dụng bởi chính lớp đó. Trong ví dụ này, phương thức lớp sử dụng tên thuộc tính lớp 1 class Fruit: Bạn có thể sử dụng một phương thức lớp với cả đối tượng và lớp 1 apple = Fruit() Tên tham số hiện thuộc về lớp, nếu bạn thay đổi tên bằng cách sử dụng một đối tượng, nó sẽ bỏ qua điều đó. Nhưng nếu bạn làm điều đó theo lớp thì nó sẽ thay đổi, ví dụ bên dưới 1 apple.name="Apple" viết thay thếThường thì ký hiệu Pythonic được sử dụng, nhưng điều này không bắt buộc. 1 class Fruit: classmethod vs staticmethodGiống như một phương thức tĩnh, một phương thức lớp không cần một đối tượng được khởi tạo Một phương thức lớp khác với một phương thức tĩnh ở chỗ một phương thức tĩnh không biết về chính lớp đó. Trong một phương thức lớp, tham số luôn là chính lớp đó một phương thức tĩnh không biết gì về lớp hoặc thể hiện. Bạn cũng có thể sử dụng một cuộc gọi chức năng một phương thức lớp nhận lớp khi phương thức được gọi. Nó biết về các thuộc tính và phương thức của lớp Trong bài viết này, tôi sẽ chỉ cho bạn biết apple.name="Apple"5 và >>> norm_product = Supermarket.normalize_product_name("milk ") 0 là gì, tại sao và khi nào bạn nên sử dụng chúng. Bắt đầu nàoSự định nghĩa @staticmethodapple.name="Apple"5 là một trình trang trí tích hợp xác định một phương thức tĩnh trong lớp trong Python. Một phương thức tĩnh không nhận lớp, cũng không phải đối tượng, các đối số cho dù nó được gọi bởi một thể hiện của một lớp hay bởi chính lớp đó Đặc điểm
Ví dụ sau khai báo một phương thức tĩnh class Fruit:3 Ở trên, lớp >>> norm_product = Supermarket.normalize_product_name("milk ") 6 khai báo phương thức >>> norm_product = Supermarket.normalize_product_name("milk ") 7 là một phương thức tĩnh sử dụng trình trang trí apple.name="Apple"5. Lưu ý rằng nó không thể có tham số >>> norm_product = Supermarket.normalize_product_name("milk ") 3 hoặc >>> norm_product = Supermarket.normalize_product_name("milk ") 2Phương thức tĩnh có thể được gọi bằng cách sử dụng >>> norm_product = Supermarket.normalize_product_name("milk ") 4 hoặc >>> norm_product = Supermarket.normalize_product_name("milk ") 5________số 8@classmethod113 là một trình trang trí tích hợp xác định một phương thức lớp trong lớp trong Python. Một phương thức lớp chỉ nhận các đối số lớp. Phương thức lớp có thể được gọi bằng cách sử dụng >>> norm_product = Supermarket.normalize_product_name("milk ") 4 hoặc >>> norm_product = Supermarket.normalize_product_name("milk ") 5113 là một thay thế của hàm 117. Nên sử dụng trình trang trí 113 thay vì chức năng vì nó chỉ là đường cú pháp Đặc điểm
Ví dụ sau khai báo một phương thức lớp 11 Ở trên, lớp >>> norm_product = Supermarket.normalize_product_name("milk ") 6 chứa thuộc tính lớp apple = Fruit()23 và thuộc tính thể hiện apple = Fruit()24. Phương thức apple = Fruit()25 được trang trí bằng trình trang trí 113 làm cho nó trở thành một phương thức lớp, có thể được gọi bằng cách sử dụng apple = Fruit()27. Lưu ý rằng tham số đầu tiên của bất kỳ phương thức lớp nào phải là >>> norm_product = Supermarket.normalize_product_name("milk ") 2 có thể được sử dụng để truy cập các thuộc tính của lớp. Bạn có thể đặt bất kỳ tên nào cho tham số đầu tiên thay vì >>> norm_product = Supermarket.normalize_product_name("milk ") 2Phương thức lớp có thể được gọi bằng cách sử dụng >>> norm_product = Supermarket.normalize_product_name("milk ") 4 hoặc >>> norm_product = Supermarket.normalize_product_name("milk ") 5apple = Fruit()2 Nhưng trong phương thức lớp, bạn không thể sử dụng thuộc tính thể hiện 12 Khi nào bạn nên sử dụng các phương thức tĩnh? 1. Nhóm chức năng tiện ích cho một lớpCác phương thức tĩnh có trường hợp sử dụng hạn chế bởi vì, giống như các phương thức lớp hoặc bất kỳ phương thức nào khác trong một lớp, chúng không thể truy cập các thuộc tính của chính lớp đó Tuy nhiên, khi bạn cần một hàm tiện ích không truy cập bất kỳ thuộc tính nào của một lớp, nhưng có nghĩa là nó thuộc về lớp, chúng ta sử dụng các hàm tĩnh Ví dụ: bạn đã thêm chức năng thay đổi định dạng tốt nhất trước ngày 13 Đây là một phương thức tĩnh vì nó không cần truy cập bất kỳ thuộc tính nào của chính >>> norm_product = Supermarket.normalize_product_name("milk ") 6 và chỉ yêu cầu các tham số2. Có một triển khai duy nhất15 Khi nào bạn nên sử dụng phương thức lớp? 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 thể hiện cụ thể nhưng lớp. Trong thực tế, bạn thường sử dụng các phương thức của lớp cho các phương thức tạo một thể hiện của lớp 1. phương pháp xuất xưởngCác phương thức xuất xưởng là những phương thức trả về một đối tượng lớp cho các trường hợp sử dụng khác nhau. Ví dụ 16 Trong trường hợp này, hàm add_product() chỉ tạo một đối tượng lớp mới (một sản phẩm mới và tốt nhất trước ngày) 2. Tạo phiên bản chính xác trong kế thừaBất cứ khi nào bạn dẫn xuất một lớp từ việc triển khai một phương thức xuất xưởng làm phương thức lớp, nó đảm bảo việc tạo thể hiện chính xác của lớp dẫn xuất Bạn có thể tạo một phương thức tĩnh, nhưng đối tượng mà nó tạo ra sẽ luôn được mã hóa cứng dưới dạng Lớp cơ sở Tuy nhiên, khi bạn sử dụng một phương thức của lớp, nó sẽ tạo ra thể hiện đúng của lớp dẫn xuất 17 Ở đây, sử dụng một phương thức tĩnh để tạo một thể hiện của lớp, muốn chúng tôi mã hóa cứng loại thể hiện trong quá trình tạo Điều này rõ ràng gây ra sự cố khi kế thừa >>> norm_product = Supermarket.normalize_product_name("milk ") 6 thành 124 Phương thức 125 không trả về đối tượng 126, nhưng đối tượng của lớp cơ sở của nó là 127 Điều này vi phạm mô hình OOP. Sử dụng một phương thức lớp như 128 có thể đảm bảo tính OOP của mã vì nó lấy tham số đầu tiên làm chính lớp đó và gọi phương thức xuất xưởng của nó Sự kết luận Trong bài viết này, chúng tôi đã phân tích apple.name="Apple"5 và >>> norm_product = Supermarket.normalize_product_name("milk ") 0 là gì và tìm hiểu cách thức, địa điểm và lý do sử dụng chúng
Chia sẻ suy nghĩ và ý kiến của bạn trong phần bình luận, nhấp vào “Vỗ tay” nếu bài viết hữu ích và thú vị đối với bạn. Click “Theo dõi” để luôn nhận được những bài viết hữu ích Khi nào chúng ta nên sử dụng Classmethod trong Python?Trong Python, trình trang trí @classmethod được sử dụng để khai báo một phương thức trong lớp dưới dạng một phương thức lớp có thể được gọi bằng Tên lớp. Tên phương thức() . Phương thức 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.
Tại sao bạn sẽ sử dụng một phương thức lớp?Các phương thức của lớp thường hữu ích khi chúng ta cần truy cập vào chính lớp đó — ví dụ: khi chúng ta muốn tạo một phương thức xuất xưởng, .
Lợi ích của phương thức lớp trong Python là gì?Nó làm rõ hơn rằng phương thức không sử dụng bất kỳ trạng thái nào từ thể hiện , thường được đặt tên là self. Ngoài ra, điều đó 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.
Tôi nên sử dụng Classmethod hay Staticmethod?Để quyết định nên sử dụng @staticmethod hay @classmethod, bạn phải xem bên trong phương thức của mình. Nếu phương thức của bạn truy cập các biến/phương thức khác trong lớp thì hãy sử dụng @classmethod . |