title: classmethod property TypeError: 'property' object is not iterable
body: <p>Running this code:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>I get this error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "test.py", line 18, in &lt;module&gt;
      for inst in A.instances:
  TypeError: 'property' object is not iterable
  </code></pre>
  
  <p>I can't figure out how having a class method behave like a property (no parentheses).</p>
  
  <ul>
  <li>Can anyone explain me why I get this error?</li>
  <li>Can anyone explain me how I could have a class method behaving like a property?</li>
  </ul>