Hướng dẫn classmethod in python - classmethod trong python
Nội dung chính Show
1. Class Method – Phương thức thuộc về lớpNội dung chính Cái decorator @classmethod là một function decorator được tích hợp sẵn của Python, nó là một biểu thức mà được xử lý sau khi hàm của bạn được định nghĩa. Kết quả của phép xử lý biểu thức đó sẽ được phản chiếu lên phần code định nghĩa hàm của bạn. Một class method (phương thức/hàm thuộc về lớp nào đó) mà nhận vào một class khác làm đối số ngầm định đầu tiên, sẽ giống như một instance method (phương thức/hàm thuộc về một thể hiện/đối tượng của lớp nào đó) nhận vào một instance.
1. Cú pháp Trong đó:fun: Là hàm mà cần chuyển đổi thành một class method – fun: Là hàm mà cần chuyển đổi thành một class methodreturns: một class method dành cho hàm này sẽ được trả về. – returns: một class method dành cho hàm này sẽ được trả về. Một class method là một method – phương thức mà được gắn với class, mà không phải là gắn với đối tượng của class. Các class methods có quyền truy cập đến trạng thái của class, bởi vì chúng đều nhận vào một tham số mà trỏ đến class, chứ không phải trỏ đến đối tượng/thể hiện. 2. Static method – Phương thức tĩnh3. Class method và Static method Cái decorator @classmethod là một function decorator được tích hợp sẵn của Python, nó là một biểu thức mà được xử lý sau khi hàm của bạn được định nghĩa. Kết quả của phép xử lý biểu thức đó sẽ được phản chiếu lên phần code định nghĩa hàm của bạn. Một class method (phương thức/hàm thuộc về lớp nào đó) mà nhận vào một class khác làm đối số ngầm định đầu tiên, sẽ giống như một instance method (phương thức/hàm thuộc về một thể hiện/đối tượng của lớp nào đó) nhận vào một instance.
1. Cú pháp Trong đó:: Một static method dành cho hàm fun – fun: Là hàm mà cần chuyển đổi thành một class method – returns: một class method dành cho hàm này sẽ được trả về. Một class method là một method – phương thức mà được gắn với class, mà không phải là gắn với đối tượng của class. Các class methods có quyền truy cập đến trạng thái của class, bởi vì chúng đều nhận vào một tham số mà trỏ đến class, chứ không phải trỏ đến đối tượng/thể hiện. Class method có thể thay đổi trạng thái của một class, và sự thay đổi này có thể tác động tới tất cả các thể hiện của class này. Ví dụ, nó có thể thay đổi một biến của class, trong khi biến này được sử dụng bởi tất cả các thể hiện của class. Static method không nhận vào đối số đầu tiên ngầm định nào. returns: Một static method dành cho hàm fun 4. Khi nào nên sử dụng cái nào?5. Làm thế nào để khai báo class method và static method? Nội dung chính 5. Làm thế nào để khai báo class method và static method?Nội dung chính Cái decorator @classmethod là một function decorator được tích hợp sẵn của Python, nó là một biểu thức mà được xử lý sau khi hàm của bạn được định nghĩa. Kết quả của phép xử lý biểu thức đó sẽ được phản chiếu lên phần code định nghĩa hàm của bạn. Một class method (phương thức/hàm thuộc về lớp nào đó) mà nhận vào một class khác làm đối số ngầm định đầu tiên, sẽ giống như một instance method (phương thức/hàm thuộc về một thể hiện/đối tượng của lớp nào đó) nhận vào một instance. 1. Cú pháp Trong đó:
– fun: Là hàm mà cần chuyển đổi thành một class method
– returns: một class method dành cho hàm này sẽ được trả về.
Các class methods có quyền truy cập đến trạng thái của class, bởi vì chúng đều nhận vào một tham số mà trỏ đến class, chứ không phải trỏ đến đối tượng/thể hiện.
Một static method là một method – phương thức mà được gắn với class, chứ không phải gắn với đối tượng của class.
Để khai báo một class method trong Python, chúng ta sẽ sử dụng decorator @classmethod, và để khai báo một static method chúng ta sẽ sử dụng decorator @staticmethod. Chúng ta cùng xem một ví dụ sau để hiểu được sự khác biệt giữa class method và static method. Giả sử, chúng ta muốn tạo ra một class Person. Lúc này, Python không hỗ trợ nạp chồng phương thức (method overloading) giống như C++ hoặc Java, vì vậy chúng ta sẽ sử dụng các class methods để tạo ra các factory methods. Trong ví dụ dưới đây, chúng ta sẽ sử dụng một class method để tạo ra một đối tượng person từ birth year (thông tin về năm sinh). |