title: Python 3 OOP Redirect method to the attribute's method
body: <p>Let suppose I have a class called <code>A</code> with an attribute <code>b</code> (class or object attribute, it doesn't matter) from a class <code>B</code>.</p>
  
  <p>There is a <code>B</code> method called <code>method_B</code></p>
  
  <p>If I create an object <code>a</code> from class <code>A</code>, and I call <code>a.method_b()</code> from <code>a</code>, I want to be redirected to <code>a.b.method_b()</code></p>
  
  <p>The corresponding code :</p>
  
  <pre class="lang-py prettyprint-override"><code>class A():
  
    def __init__(self):
      self.b = B()
  
  class B():
  
    def __init__(self):
      self.val = 'a string'
  
    def method_B(self):
      # do something with self.val for example
  
  # MAIN
  
  a = A()
  
  # this:
  a.method_B()
  
  # should be the same as:
  a.b.method_B()
  </code></pre>
  
  <p>In fact, I want to avoid rewritting the <code>method_B</code> in class <code>A</code> like this:</p>
  
  <pre class="lang-py prettyprint-override"><code>class A():
  
    ...
  
    def method_B():
      self.b.method_B()
  </code></pre>
  
  <p>I have looked up an use of <strong>property</strong> and with <strong>descriptor</strong> but I don't know how to adapt them (if I can adapt them of course)</p>
  
  <p><em>Thank you in advance for your help</em></p>