pocketpy/docs/quick-start/02_interop.md
blueloveTH 286d603e31 ...
2023-04-23 13:31:46 +08:00

1.1 KiB

icon label order
code Interop with PyObject 90

Any python object is represented by a PyObject*.

  • VAR(...), create a PyObject* from a C type
  • CAST(T, ...), cast a PyObject* to a C type
  • _CAST(T, ...), cast a PyObject* to a C type, without type check
PyObject* x = VAR(12);		// cast a C int to PyObject*
int y = CAST(int, x);		// cast a PyObject* to C int

PyObject* i = VAR("abc");
std::cout << CAST(Str, i);	// abc

Types

PyObject type C type note
int i64 62 bits integer
float f64 62 bits floating point
str pkpy::Str
bool bool
list pkpy::List
tuple pkpy::Tuple
function pkpy::Function
... ... ...