Re: [問題] 如何找到class的instance??

看板Python作者 (偏執狂)時間15年前 (2009/11/27 01:42), 編輯推噓2(203)
留言5則, 5人參與, 最新討論串3/10 (看更多)
class A(object): instances = [] def __init__ (self): self.value = 0 def __new__(cls): ins = super(A, cls).__new__(cls) A.instances.append(ins) return ins a = A() a.value = 1 b = A() b.value = 2 c = A() c.value = 100 for i in A.instances: print i.value 直接透過__new__()時去記錄,應該會比較直覺吧 ※ 引述《KSJ (阿真)》之銘言: : 假設 : class a(): : pass : 建立好了class : 然後instance : b=a() : b.x=6 : c=a() : c.x=666 : 這樣很明白的有 b 跟 c 二個instance : 可以找出各自的"值" : b.x #6 : c.x #666 : 可是... 如果不知道instance存起來叫b (or c) : 該如何找到 "a class 下曾 instance過的 instance 的"值" 呢" : 我覺得找到instance(也就是b c) 找"值"就簡單了 (就b.x之類的) : 可是不知道怎麼找instance 想請大家幫個忙 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.78.80

11/27 01:49, , 1F
這招是把instance放在class的屬性裡嗎 囧 好威
11/27 01:49, 1F

11/27 02:01, , 2F
要考慮到這方法等於讓所有 A instance 都無法被回收。
11/27 02:01, 2F

11/27 02:40, , 3F
可以用 weakref ?
11/27 02:40, 3F

11/27 08:24, , 4F
嗯 是可以改成weakref就可以解決無法被回收的問題
11/27 08:24, 4F

11/27 16:03, , 5F
11/27 16:03, 5F
文章代碼(AID): #1B3hth4u (Python)
討論串 (同標題文章)
文章代碼(AID): #1B3hth4u (Python)