作为参数传递的变量的名称

时间:2013-12-08 10:12:45

标签: python python-c-api

我想按照

的方式做点什么
static PyObject* printArgs(PyObject* self, PyObject* args) {
    PyObject * oarg1 = NULL;
    PyArg_ParseTuple(args,"O",&oarg1);
    return -- magic --
}

这样调用modulename.printArgs(a)会返回'a'。

这可能吗?我能想到的最好的方法是通过locals()查找一个变量,该变量指向我在args中获得的任何内容,但如果该值的名称不止一个,我可能会得到错误的名称。

1 个答案:

答案 0 :(得分:1)

不太可能。绝不保证参数甚至有名称,它可以是匿名表达式。因此,这不是API的限制,它是您尝试实现的基本问题。你能为printArgs函数提供一些动力吗?