Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Phương thức __str__ trong Python
Trong bài viết này, bạn sẽ học cách sử dụng phương thức __str__ trong Python để tùy chỉnh cách hiển thị đối tượng của một lớp dưới dạng chuỗi. Phương thức __str__ cho phép bạn kiểm soát thông tin mà đối tượng sẽ hiển thị khi được gọi bằng hàm print(), giúp cải thiện khả năng đọc và hiểu của mã nguồn khi làm việc với các đối tượng phức tạp.

Giới thiệu về phương thức __str__ trong Python
Hãy bắt đầu với ví dụ về lớp Person:
class Person:
def __init__(self, first_name, last_name, age):
self.first_name = first_name
self.last_name = last_name
self.age = age
Lớp Person này có ba thuộc tính là first_name (tên), last_name (họ), và age (tuổi).
Dưới đây là cách tạo một đối tượng mới từ lớp Person và hiển thị nó:
Bài viết này được đăng tại [free tuts .net]
person = Person('John', 'Doe', 25)
print(person)
Kết quả:
<__main__.Person object at 0x0000023CA16D13A0>
Khi bạn sử dụng hàm print() để hiển thị đối tượng của lớp Person, kết quả trả về sẽ là địa chỉ bộ nhớ của đối tượng đó, thay vì thông tin về đối tượng.
Trong nhiều trường hợp, sẽ hữu ích hơn nếu ta có thể tùy chỉnh cách hiển thị thông tin của đối tượng dưới dạng chuỗi. Để làm được điều này, bạn có thể triển khai phương thức đặc biệt __str__ trong lớp.
Phương thức __str__ sẽ được Python tự động gọi khi bạn sử dụng hàm str() trên một đối tượng. Lưu ý rằng, hàm print() sẽ tự động chuyển các đối tượng không phải từ khóa thành chuỗi bằng cách gọi hàm str() trước khi hiển thị chúng.
Cách triển khai phương thức __str__ trong Python
Dưới đây là cách triển khai phương thức __str__ trong lớp Person:
class Person:
def __init__(self, first_name, last_name, age):
self.first_name = first_name
self.last_name = last_name
self.age = age
def __str__(self):
return f'Person({self.first_name}, {self.last_name}, {self.age})'
Với việc triển khai __str__, khi bạn in một đối tượng của lớp Person, Python sẽ gọi phương thức __str__ mà bạn đã định nghĩa. Ví dụ:
person = Person('John', 'Doe', 25)
print(person)
Kết quả:
Person(John, Doe, 25)
Kết bài
Để tạo biểu diễn chuỗi ý nghĩa cho các đối tượng, việc triển khai phương thức __str__ là một bước quan trọng. Điều này không chỉ giúp cải thiện khả năng đọc hiểu của mã mà còn cung cấp thông tin hữu ích hơn khi in ra hoặc chuyển đổi đối tượng thành chuỗi, giúp việc gỡ lỗi và xử lý dữ liệu trở nên dễ dàng hơn.

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng