__str__
в классе, необходимо создать метод с именем __str__
в этом классе. Этот метод должен возвращать строковое представление объекта. Пример:
class MyClass:
def __init__(self, value):
self.value = value
def __str__(self):
return f"Объект MyClass со значением: {self.value}"
Метод __str__
в Python используется для представления объекта класса в виде строки. Он вызывается функцией str()
и, как правило, должен возвращать удобочитаемое представление объекта, предназначенное для отображения пользователю.
Чтобы переопределить метод __str__
в классе, нужно создать метод с именем __str__
внутри определения класса и реализовать в нем логику, которая будет возвращать желаемое строковое представление объекта.
Вот пример:
class MyClass:
def __init__(self, name, value):
self.name = name
self.value = value
def __str__(self):
return f"MyClass object: name={self.name}, value={self.value}"
# Пример использования
obj = MyClass("Example", 42)
print(str(obj)) # Выведет: MyClass object: name=Example, value=42
print(obj) # Тоже выведет: MyClass object: name=Example, value=42 (так как print неявно использует str())
Важно:
__str__
должен возвращать строку. Попытка вернуть что-либо другое приведет к ошибке TypeError
.__str__
не определен в классе, Python использует метод __repr__
для строкового представления объекта. Если и __repr__
не определен, то будет использовано стандартное представление объекта (например, <__main__.MyClass object at 0x7f...>
).__str__
предназначен для *человекочитаемого* представления объекта, а __repr__
предназначен для *однозначного* представления (например, для отладки и логирования). В идеале, __repr__
должен возвращать строку, которую можно использовать для создания нового объекта, идентичного исходному (например, MyClass("Example", 42)
).