title: How can I decide to call an overrided method in child class from either parent or child class?
body: <p>I am going to implement below C# piece of code in Python. As a matter of fact, when I instantiate an object from class B, I am prone to get some flexibility to choose between the parent-version or child version of the overrided method, just like below:</p>
  
  <pre><code>class A
  {
      public virtual void show()
      {
          Console.WriteLine("Print A");
      }
  }
  
  class B : A
  {
      public override void show()
      {
          Console.WriteLine("Print B");
      }
  }
  
  class Program
  {
      static void Main(string[] args)
      {
          A a;
          a = new A();
          a.show();
  
          a = new B();
          a.show();
  
          Console.ReadKey();
      }
  }
  </code></pre>
  
  <p>Where the output is: </p>
  
  <pre><code>Print A
  Print B
  </code></pre>
  
  <p>But I have no clear idea to the same with super keyword in python. I have written below code:</p>
  
  <pre><code>class A(object):
      def f(self):
          print("A.f()")
  
  class B(A):
      def f(self):
          print("B.f()")
          return super().f()
  
  b = B()
  b.f()
  </code></pre>
  
  <p>where the output is:</p>
  
  <pre><code>B.f()
  A.f()
  </code></pre>
  
  <p>which is not my desired output; in the latter case, i.e. Python one, the two strings are generated just by one method call.</p>
  
  <p>Would you please help me to change the python code so that the desired output is acquired? </p>