Why doesn't this work: class C1: def f1(self): print("f1") class C2(C1): f1() It throws this error: Traceback (most recent call last): File "./c1.py", line 7, in <module> class C2(C1): File "./c1.py", line 8, in C2 f1() NameError: name 'f1' is not defined f1() is an attribute of class C1, C2 inherits C1, so why can't it see it? thanks!