__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)).