現在我有一個singleton的架構的class如下
我到時候會透過reset的function去刷新其屬性
不過我發現我每更新一次他記憶體佔用就會上升並且不會釋放
def singleton(clz):
instances = {}
def getinstance(*args, **kwargs):
if clz not in instances:
instances[clz] = clz(*args, **kwargs)
return instances[clz]
return getinstance
def get_data(a=1, b=2, c=3, d=4):
return a, b, c, d
@singleton
class MyClass:
a, b, c, d = get_data()
def reset_data(self):
self.a, self.b, self.c, self.d = get_data(4, 3, 2, 1)
當我
import MyClass
c = MyClass()
c.reset_data()
一直重複執行reset_data, 我記憶體就會一直leak...
不知道是哪邊理解錯誤?