title: What is the difference between `super(...)` and `return super(...)`?
body: <p>I'm just now learning about python OOP. In some framework's source code, i came across <code>return super(...</code> and wondered if there was a difference between the two.</p>
  
  <pre><code>class a(object):
      def foo(self):
          print 'a'
  
  class b(object):
      def foo(self):
          print 'b'
  
  class A(a):
      def foo(self):
          super(A, self).foo()
  
  class B(b):
      def foo(self):
          return super(B, self).foo()
  
  &gt;&gt;&gt; aie = A(); bee = B()
  &gt;&gt;&gt; aie.foo(); bee.foo()
  a
  b
  </code></pre>
  
  <p>Looks the same to me. I know that OOP can get pretty complicated if you let it, but i don't have the wherewithal to come up with a more complex example at this point in my learning. Is there a situation where returning <code>super</code> would differ from calling <code>super</code>?</p>