summaryrefslogtreecommitdiff
path: root/docs/examples/userguide/extension_types/c_property.pyx
blob: a545398fefc6798c3325a34aace5b732a783c1e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
cdef extern from "complexobject.h":

    struct Py_complex:
        double real
        double imag

    ctypedef class __builtin__.complex [object PyComplexObject]:
        cdef Py_complex cval

        @property
        cdef inline double real(self):
            return self.cval.real

        @property
        cdef inline double imag(self):
            return self.cval.imag


def cprint(complex c):
    print(f"{c.real}+{c.imag}j")  # uses C calls to the above property methods.