I am trying to make a simple extension in C that should be able to extend python code . I found that code on https://github.com/munirhossain/py_c_extension
#include <Python.h> // Function 1: A simple 'hello world' function static PyObject* helloworld(PyObject* self, PyObject* args) { printf("Hello Munir\n"); Py_RETURN_NONE; return Py_None; } // Function 2: A C fibonacci implementation // this is nothing special and looks exactly // like a normal C version of fibonacci would look int Cfib(int n) { if (n < 2) return n; else return Cfib(n-1)+Cfib(n-2); } // Our Python binding to our C function // This will take one and only one non-keyword argument static PyObject* fib(PyObject* self, PyObject* args) { // instantiate our `n` value int n; // if our `n` value if(!PyArg_ParseTuple(args, "i", &n)) return NULL; // return our computed fib number return Py_BuildValue("i", Cfib(n)); } // Our Module's Function Definition struct // We require this `NULL` to signal the end of our method // definition static PyMethodDef myMethods[] = { { "helloworld", helloworld, METH_NOARGS, "Prints Hello Munir" }, { "fib", fib, METH_VARARGS, "Computes Fibonacci" }, { NULL, NULL, 0, NULL } }; // Our Module Definition struct static struct PyModuleDef myModule = { PyModuleDef_HEAD_INIT, "myModule", "Test Module", -1, myMethods }; // Initializes our module using our above struct PyMODINIT_FUNC PyInit_myModule(void) { return PyModule_Create(&myModule); } I would like to modify that code like when I call the helloworld func , like helloworld("max") it returns Hello max in C , but idk how can I use PyObject* args :/ Any ideas how I can do that (in C) ?