Если кто-то пишет класс в python и не может указать свой собственный метод __repr__()
, то для них предоставляется по умолчанию. Однако предположим, что мы хотим написать функцию, которая имеет то же или подобное поведение по умолчанию __repr__()
. Однако мы хотим, чтобы эта функция имела поведение метода __repr__()
по умолчанию, даже если фактический __repr__()
для класса был перегружен. То есть предположим, что мы хотим написать функцию, которая имеет такое же поведение, что и значение по умолчанию __repr__()
, независимо от того, перегрузил ли кто-либо метод __repr__()
или нет. Как мы можем это сделать?
class DemoClass:
def __init__(self):
self.var = 4
def __repr__(self):
return str(self.var)
def true_repr(x):
# [magic happens here]
s = "I'm not implemented yet"
return s
obj = DemoClass()
print(obj.__repr__())
print(true_repr(obj))
Требуемый выход:
print(obj.__repr__())
выводит 4
, но print(true_repr(obj))
печатает что-то вроде: <__main__.DemoClass object at 0x0000000009F26588>