【发布时间】:2018-07-24 10:12:59
【问题描述】:
如果有人在 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>
【问题讨论】:
标签: python python-3.x representation repr