title: Inheritance - Calling methods within methods
body: <p>I know the <code>super()</code> function allows you to call a parent method from a child class. So in this example:</p>
  <pre><code>class Exam():
      def __init__(self, a):
          self.a = a
          
      def show(self):
          print(&quot;This is from parent method&quot;)
  
  
  class Quiz(Exam):
      def __init__(self, b, a):
          super().__init__(a)
          self.b = b
          
      def show(self):
          print(&quot;This is from child method&quot;)
          super().show()
  
  q = Quiz('b', 'a')
  q.show()
  
  &gt;&gt;&gt; 'This is from child method'
  &gt;&gt;&gt; 'This is from parent method'
     
  </code></pre>
  <p>What if I added another method called <code>get_score</code> to both the parent and child class like here:</p>
  <pre><code>class Exam():
      def __init__(self, a):
          self.a = a
          
      def show(self):
          print(&quot;This is from parent method&quot;)
          print (self.get_score())
      
      def get_score(self):
          return self.a
      
      
  class Quiz(Exam):
      def __init__(self, b, a):
          super().__init__(a)
          self.b = b
          
      def show(self):
          print(&quot;This is from child method&quot;)
          super().show()
          print (self.get_score())
      
      def get_score(self):
          return self.b
  
  q = Quiz('b', 'a')
  q.show()
  
  &gt;&gt;&gt; 'This is from child method'
  &gt;&gt;&gt; 'This is from parent method'
  &gt;&gt;&gt; 'b'
  &gt;&gt;&gt; 'b'
  </code></pre>
  <p>I can understand why calling <code>super().show()</code> in the child class would return <code>'b'</code> since I am overwriting the <code>get_score()</code> method.</p>
  <p>However, is there a way to maintain the integrity of the parent class so that when I do call <code>super().show()</code></p>
  <p>I get this instead?</p>
  <pre><code>&gt;&gt;&gt; 'This is from child method'
  &gt;&gt;&gt; 'This is from parent method'
  &gt;&gt;&gt; 'a'
  &gt;&gt;&gt; 'b'
  </code></pre>
  <p>Sorry in advance if this is bad design. Let me know what other alternatives I can take, even if it means I should the name of the method to avoid this kind of collision.</p>