如果有人在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>
__qualname__
,这是最近添加的吗? - cs95__qualname__
是在3.3版本中添加的:http://legacy.python.org/dev/peps/pep-3155/ - Schmuddi