我正在尝试追踪Python源代码,其中实际调用了某个函数以及如何获取其名称。
在abstract.c:
PyObject *
PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw)
{
ternaryfunc call;
if((call = func->ob_type->tp_name) != NULL){
PyObject *result;
...
result = (*call)(func, arg, kw); //How do I find out what is being called here?
...
}
...
}
在我评论的那一行,我怎样才能得到所谓的名字?我能够通过(char *)func->ob_type->tp_name
获取对象类型,但我想知道被调用函数的名称。 (args也会很好)
注意:我正在使用Python 2.6。
答案 0 :(得分:1)
函数对象的__name__
属性应包含名称。参数在arg
中作为元组,kw
作为dict。