__repr__ и __str__ - представим объект в виде строки

Эти методы должны вернуть строку

Эти методы вызываются, когда объект пытаются преобразовать в строку:

>>> class A:
...     def __str__(self):  return 'call str'
...     def __repr__(self): return 'call repr'
...
>>> x = A()
>>> x
call repr
>>> b = [x]
>>> b
[call repr]
>>> print(x)
call str
>>> str(x)
'call str'
>>> repr(x)
'call repr'
  • __str__ - пытается вызваться при print() и str(); показывает объект для пользователя.
  • __repr__ - в остальных случаях; содержит полезный для разработчика код (для отладки) или строку, которую можно выполнить и воссоздать этот объект.

Если метода __str__ нет, то будет пытаться вызваться метод __repr__. Но не наоборот, если есть только __repr__, то не будут пытаться вместо нее вызвать __str__ (Вдруг нужно полученную строку потом будет выполнять, а результат str выполнять не предполагается).

results matching ""

    No results matching ""