title: How to tell pylint that sub-classes of a composed class have access to the parent members?
body: <p>I have this test script:</p>
  
  <pre><code>class HugeGetterClass:
  
      def __init__(self):
          pass
  
      def getMe(self, key):
          return self._cache.get(key)
  
  class HugeSetterClass:
  
      def __init__(self):
          pass
  
      def setMe(self, key, value):
          self._cache[key] = value
  
  class ContainerClass(HugeGetterClass, HugeSetterClass):
  
      def __init__(self):
          HugeGetterClass.__init__(self)
          HugeSetterClass.__init__(self)
          self._cache = { }
  
  a = ContainerClass()
  
  a.setMe('a', 'Hello')
  print a.getMe('a')
  </code></pre>
  
  <p>This is maybe not very good style, but works: <code>HugeGetterClass</code> and <code>HugeSetterClass</code> have access to <code>self._cache</code> indirectly, by being part of <code>ContainerClass</code>. But running <code>pylint</code> gives:</p>
  
  <pre><code>» pylint -E composing.py
  No config file found, using default configuration
  ************* Module composing
  E:  7,15:HugeGetterClass.getMe: Instance of 'HugeGetterClass' has no '_cache' member
  E: 15,8:HugeSetterClass.setMe: Instance of 'HugeSetterClass' has no '_cache' member
  </code></pre>
  
  <p>Which is understandable, but it annoys me. The classes have no <code>_cache</code> member, but have anyway access to it. I have several questions:</p>
  
  <ol>
  <li>Is it possible to trick <code>pylint</code> on this, without disabling the error class completely, which is too heavy handed? </li>
  <li>Is this coding style <em>pythonic</em>?. If not, what would the alternative way to code a huge class? What I am doing is separating functionality in sub-classes (in order to avoid having huge source files which become unmanageable), even though those subclasses are meant to be always used together.</li>
  </ol>