Consider the following example:

```py
class A:
 def m():
  pass

class B(A):
 pass

```

And the following terminal output:

```
>>> b = B()
>>> b.m
<bound method A.m of <__main__.B object at 0x000001EFFF24C748>>
>>> super(b.__class__, b).m
<bound method A.m of <__main__.B object at 0x000001EFFF24C748>>
>>> b.m is super(b.__class__, b).m
False
>>> b.m == super(b.__class__, b).m
True

```

Why are they equal but not identical? Is a copy of the method made when it is inherited? 

Are there better ways to test whether a child class has overridden a parent method?