0

我正在尝试跟踪实际调用某个函数的 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。

4

1 回答 1

1

函数对象的__name__属性应该包含名称。参数arg以元组和kw字典的形式存在。

于 2011-06-07T17:30:32.343 回答