【发布时间】:2021-02-06 08:39:56
【问题描述】:
我现在有点困惑:
import weakref
class A:
def __init__(self, p):
self.p = p
def __repr__(self):
return f"{type(self).__name__}(p={self.p!r})"
a = A(1)
proxy_a = weakref.proxy(a)
print(repr(proxy_a))
# '<weakproxy at 0x7f2ea2fc1b80 to A at 0x7f2ea2fee610>'
print(proxy_a.__repr__())
# 'A(p=1)'
为什么repr(proxy_a) 返回代理的表示,而proxy_a.__repr__() 返回原始对象的表示?这两个电话不应该归结为同一件事吗?而使用repr(proxy_a)实际调用的是哪个__repr__实现?
【问题讨论】:
标签: python weak-references repr