For example, the following code would report an error: class base(): def foo(self) -> None: print('Base!') def placement(self) -> None: super().foo() class child(base): def foo(self) -> None: pass foo = placement child().foo() RuntimeError: super(): __class__ cell not found However, it would be OK if `placement` is defined inside the class: class base(): def foo(self) -> None: print('Base!') class child(base): def placement(self) -> None: super().foo() def foo(self) -> None: pass foo = placement child().foo() which prints: Base! I think it would be natural if those functions that was defined outside a class, but then rebound into a class, can see magic variables like __class__ that are only shared by those functions defined inside a class. Thank you!