title: How to avoid pylint not-an-iterable when using a custom property class
body: <p>My code uses the commonly used <a href="https://github.com/pallets/werkzeug/blob/2b2d921eea7d1f896ce436ec5238890abe8b81bf/werkzeug/utils.py#L35" rel="nofollow noreferrer">cached_property</a> class from <a href="http://werkzeug.pocoo.org/" rel="nofollow noreferrer">werkzeug</a>. Consider the following snippet:</p>
  
  <pre class="lang-python prettyprint-override"><code>from werkzeug import cached_property
  
  class SampleClass(object):
      @cached_property
      def list_prop(self):
          return [1, 2]
  
  sample = SampleClass()
  for item in sample.list_prop:
      print item
  </code></pre>
  
  <p>I use pylint in my CI process. If I run the pylint <a href="https://pylint.readthedocs.io/en/latest/reference_guide/features.html#iterable-check-checker" rel="nofollow noreferrer">not-an-iterable</a> check on this code, it fails even though the code is perfectly fine.</p>
  
  <pre class="lang-none prettyprint-override"><code>$ pylint --disable=all --enable=not-an-iterable prop.py
  ************* Module prop
  E:  9,12: Non-iterable value sample.list_prop is used in an iterating context (not-an-iterable)
  </code></pre>
  
  <p>pylint works well when checking the same code with the built-in <code>@property</code> decorator instead of <code>@cached_property</code>:</p>
  
  <pre class="lang-python prettyprint-override"><code>class SampleClass(object):
      @property
      def list_prop(self):
          return [1, 2]
  </code></pre>
  
  <p>What should I do to help pylint overcome this false positive?</p>