blueloveTH 286d603e31 ...
2023-04-23 13:31:46 +08:00

549 B

icon label order
code Call a Python function 70

Use these to call a python function.

  • PyObject* VM::call(PyObject* obj, ...)
  • PyObject* VM::call_method(PyObject* obj, StrName name, ...)

For example, to create a dict object,

PyObject* tp = vm->builtins->attr("dict");
PyObject* obj = vm->call(tp);	// this is a `dict`

And set a key-value pair,

vm->call_method(obj, "__setitem__", VAR("a"), VAR(5));
PyObject* ret = vm->call(obj, "__getitem__", VAR("a"));
std::cout << CAST(int, ret) << std::endl; // 5