我试图弄清楚为什么这段代码有效,只产生一个唯一的 A 类实例。
def singleton_function (c):
print("singleton_function")
x = c()
return lambda : x
@singleton_function
class A:
pass
def test2 () :
x = A()
y = A()
assert x == y
test2()
输出:
python3 test.py
singleton_function
为什么 singleton_function 只访问一次?A 是函数类型,所以我的猜测是当调用 A, A() 时,它返回 x,它是类 A 的实例,因此,它应该打印两次“singleton_function”,因为我访问了两次。我在想什么?
慕田峪7331174
相关分类