作者Falldog (偏执狂)
看板Python
标题Re: [问题] 如何找到class的instance??
时间Fri Nov 27 01:42:00 2009
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
1F:推 KSJ:这招是把instance放在class的属性里吗 囧 好威 11/27 01:49
2F:→ sbrhsieh:要考虑到这方法等於让所有 A instance 都无法被回收。 11/27 02:01
3F:→ godfat:可以用 weakref ? 11/27 02:40
4F:→ Falldog:嗯 是可以改成weakref就可以解决无法被回收的问题 11/27 08:24
5F:推 superGA:推 11/27 16:03