Как вывести значение при принте объекта класса
class Any:
"""
Типа код
"""
if __name__ == "__main__":
a = Any()
print(a) #>>> <__main__.Any object at 0x00000194E371EFD0>
Мне нужно чтобы он выводил значение строку или число к примеру. Есть ли какой-нибудь магический метод?
Ответы (1 шт):
Автор решения: Danis
→ Ссылка
Существует магический метод __str__, который должен возвращать строку
class Any:
"""
Типа код
"""
def __str__(self):
return "Типа текст"
print(Any()) #Типа текст
но если положить экземпляр в список то метод __str__ работать не будет.
class Any:
"""
Типа код
"""
def __str__(self):
return "Типа текст"
arr = [Any()]
print(arr) #[<__main__.Any object at 0xedc0b580>]
Это можно исправить реализовав метод __repr__.
class Any:
"""
Типа код
"""
def __str__(self):
return "Типа текст"
__repr__ = __str__
arr = [Any()]
print(arr) #[Типа текст]