🤔 Чем отличаются str и repr?
Функции str() и repr() используются для получения строкового представления объектов, но они служат разным целям и работают по-разному.
🚩Функция str()
Предназначена для получения "приятного" строкового представления объекта, которое может быть представлено пользователю. Она старается сделать строку более читабельной и понятной. Если метод __str__() не определен в классе объекта, использует метод __repr__() как запасной вариант.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}, возраст {self.age} лет"
person = Person("Иван", 30)
print(str(person)) # Вывод: Иван, возраст 30 лет
🚩Функция repr()
Предназначена для получения официального строкового представления объекта, которое может быть использовано для воссоздания того же объекта при помощи интерпретатора. repr() должна быть максимально точной и содержать информацию о всех атрибутах объекта. Результат repr() часто используется для отладки и разработки, так как он дает больше деталей о объекте.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person('{self.name}', {self.age})"
person = Person("Иван", 30)
print(repr(person)) # Вывод: Person('Иван', 30)
Ставь 👍 и забирай 📚 Базу знаний
Функции str() и repr() используются для получения строкового представления объектов, но они служат разным целям и работают по-разному.
🚩Функция str()
Предназначена для получения "приятного" строкового представления объекта, которое может быть представлено пользователю. Она старается сделать строку более читабельной и понятной. Если метод __str__() не определен в классе объекта, использует метод __repr__() как запасной вариант.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}, возраст {self.age} лет"
person = Person("Иван", 30)
print(str(person)) # Вывод: Иван, возраст 30 лет
🚩Функция repr()
Предназначена для получения официального строкового представления объекта, которое может быть использовано для воссоздания того же объекта при помощи интерпретатора. repr() должна быть максимально точной и содержать информацию о всех атрибутах объекта. Результат repr() часто используется для отладки и разработки, так как он дает больше деталей о объекте.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person('{self.name}', {self.age})"
person = Person("Иван", 30)
print(repr(person)) # Вывод: Person('Иван', 30)
Ставь 👍 и забирай 📚 Базу знаний