diff options
-rw-r--r-- | demo/cdef_call_python.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/demo/cdef_call_python.py b/demo/cdef_call_python.py new file mode 100644 index 0000000..24f420f --- /dev/null +++ b/demo/cdef_call_python.py @@ -0,0 +1,29 @@ +import cffi + +ffi = cffi.FFI() + +ffi.cdef(""" + int add(int x, int y); + CFFI_CALL_PYTHON long mangle(int); +""") + +ffi.set_source("_cdef_call_python_cffi", """ + + static long mangle(int); + + static int add(int x, int y) + { + return mangle(x) + mangle(y); + } +""") + +ffi.compile() + + +from _cdef_call_python_cffi import ffi, lib + +@ffi.call_python("mangle") # optional argument, default to func.__name__ +def mangle(x): + return x * x + +assert lib.add(40, 2) == 1604 |