2017-07-11 74 views
0

的Python 3.6Python的透明弱引用

我將如何去建立一個 '透明' weakref.ref

所以我不必使用__call__()方法?

我可以只使用y.value

class integer(): 
    def __init__(self,value): 
     self.value = value 

x = integer(5) 
y = weakref.ref(x) 

print(y.__call__().value) 

輸出:

5 
+0

你不應該明確地使用'__call__';它只是'y().value'。你可以通過'weakref.proxy'獲得'y.value'(就像你看過你檢查過的文檔一樣),但是不要使用它們,因爲這樣做更容易搞砸了。 – user2357112

+0

@ user2357112 - 您如何看待'weakref'模塊? –

+0

謝謝,這似乎是最簡單的選擇。我想創建大量數據的不同「視圖」。使用代理對象聽起來很完美! –

回答

0

你可以使用:

class integer(): 
    def __init__(self,value): 
     self.value = value 

x = integer(5) 
y = weakref.proxy(x) 

print(y.value) 

輸出:

5