Функция repr
в Python используется для получения строкового представления объекта, которое должно быть однозначным и содержать всю информацию, необходимую для создания аналогичного объекта. Это представление предназначено главным образом для отладки и разработки.
Содержание
- Синтаксис
- Параметры
- Возвращаемое значение
- Примеры использования
- Пример 1: Строковое представление чисел
- Пример 2: Строковое представление строки
- Пример 3: Строковое представление списка
- Пример 4: Строковое представление словаря
- Пример 5: Пользовательские объекты
- Пример 6: Использование repr в отладке
- Важные замечания
Синтаксис
repr(object)
Параметры
object
: Объект, для которого требуется получить строковое представление.
Возвращаемое значение
Функция repr
возвращает строку, которая содержит официальное строковое представление объекта. Это представление часто может быть использовано в функции eval
для воссоздания объекта.
Примеры использования
Пример 1: Строковое представление чисел
print(repr(123)) # Вывод: '123'
print(repr(10.5)) # Вывод: '10.5'
Пример 2: Строковое представление строки
print(repr("Hello, World!")) # Вывод: "'Hello, World!'"
Пример 3: Строковое представление списка
my_list = [1, 2, 3, 'a', 'b', 'c']
print(repr(my_list)) # Вывод: "[1, 2, 3, 'a', 'b', 'c']"
Пример 4: Строковое представление словаря
my_dict = {'name': 'Alice', 'age': 25}
print(repr(my_dict)) # Вывод: "{'name': 'Alice', 'age': 25}"
Пример 5: Пользовательские объекты
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person(name={self.name}, age={self.age})"
person = Person("Bob", 30)
print(repr(person)) # Вывод: "Person(name=Bob, age=30)"
Пример 6: Использование repr
в отладке
my_list = [1, 2, 3]
print(f"My list: {repr(my_list)}")
# Вывод: My list: [1, 2, 3]
Важные замечания
- Официальное представление:
repr
возвращает строку, которая является официальным представлением объекта. Это представление предназначено для разработчиков и должно быть информативным и точным. - Метод
__repr__
: Для пользовательских объектов можно определить метод__repr__
, чтобы кастомизировать вывод функцииrepr
. - Использование с
eval
: Результат функцииrepr
часто может быть использован с функциейeval
для создания аналогичного объекта. Однако использованиеeval
должно быть ограничено, так как это может привести к потенциальным рискам безопасности.