cython
1cdef class C:
2cdef int i
3
4def foo(self):
5self.i = 42
6
7def get_i(self):
8return self.i
9
10
11def cast_cast_cast(arg):
12"""
13>>> x = C()
14>>> x.foo()
15>>> cast_cast_cast(x) == x
16True
17>>> x.get_i()
1842
19"""
20cdef object x
21cdef void *p = <void *>arg
22cdef int i
23x = <object>p
24p = <void *>x
25x = (<object>p).foo
26i = (<C>p).i
27(<C>p).i = i
28return <object>p
29