1: cdef class A:
2:     cpdef foo(self, int k):
3:         return "A %s" % k
4:         
5:     def bar(self, int k):
6:         return self.foo(k), A.foo(self, k)
7:         
8: cdef class B(A):
9:     cpdef foo(self, int k):
10:         return "B %s" % k
11:         
12: class C(B):
13:     def foo(self, int k):
14:         return "C %s" % k
15:
16: class D(C):
17:     def foo(self, int k):
18:         return "D %s" % k, C.foo(self, k), B.foo(self, k), A.foo(self, k)
19:         
20: for x in [A(), B(), C(), D()]:
21:     print x.foo(5)
22:     print x.bar(10)
23:     
24: cdef class AA(A):
25:     cpdef foo(self, int k):
26:         return k
27:         
28: assert float(4), A().foo(int(4))