運行此代碼:類方法屬性類型錯誤:「財產」對象不是可迭代
import weakref
class A(object):
_instances = []
def __init__(self):
self._instances.append(weakref.ref(self))
@property
@classmethod
def instances(cls):
for inst_ref in cls._instances:
inst = inst_ref()
if inst is not None:
yield inst
foo = A()
bar = A()
for inst in A.instances:
print inst
我得到這個錯誤:
Traceback (most recent call last):
File "test.py", line 18, in <module>
for inst in A.instances:
TypeError: 'property' object is not iterable
如何有一個類的方法表現得像我想不出屬性(不包括括號)。
- 任何人都可以解釋爲什麼我得到這個錯誤嗎?
- 任何人都可以解釋我怎麼能有一個類方法行爲像一個屬性?
我會隨身攜帶,因爲它看起來對我來說最爲優雅。非常感謝! (PS我不能高調,因爲我不到15歲,對此抱歉...)。 – Narann