I read quite a lot of material about the correct use of super with and without argument(s) but there is still something that I do not understand.
Let's consider the following example:
class A:
def foo(self):
pass
class B(A):
pass
This is the part I understand:
super(B, B()) # <bound method A.foo of <__main__.B object at ...>>
which makes sense, as the two argument version of super, with the second argument being an object returns a bound object.
Let's say that I want to access the function in A, not the bound method. I would try this:
super(B).foo # AttributeError: 'super' object has no attribute 'foo'
Which is the part that I do not understand.
Trying to "trick" super in the following way works though:
super(B, B).foo # <function __main__.A.foo(self)>
What am I missing?