#.weakref弱引用
import weakref
class Cheese:
"""各种奶酪"""
def __init__(self, kind):
self.kind = kind
def __repr__(self):
return 'Cheese(%r)' % self.kind
stock = weakref.WeakValueDictionary()
catalog = [Cheese('A'), Cheese('B'), Cheese('C'), Cheese('D'), ]
for cheese in catalog:
stock[cheese.kind] = cheese
print(sorted(stock.keys()))
del catalog
print(sorted(stock.keys()))
del cheese
print(sorted(stock.keys()))
class TestObj:
pass
def test_func(reference):
print('Hello from Callback function!')
print(reference, 'This weak reference is no longer valid')
a = TestObj()
x = weakref.ref(a, test_func)
print(x())
del a
t = (1, 2)
t2 = t[:]
t3 = tuple(t)
print(t3 is t)
print(t2 is t)