Function Objects

有一些特定于Python函数的函数。

PyFunctionObject

用于函数的C结构。

PyTypeObject PyFunction_Type

这是PyTypeObject的实例,表示Python函数类型。它作为types.FunctionType暴露给Python程序员。

int PyFunction_Check(PyObject *o)

如果o是函数对象(类型PyFunction_Type),则返回true。该参数不能为NULL

PyObject* PyFunction_New(PyObject *code, PyObject *globals)
返回值:新引用。

返回与代码对象代码关联的新函数对象。全局变量必须是具有函数可访问的全局变量的字典。

函数的docstring和name是从代码对象中检索的。__模块__是从全局检索的。参数默认值,注解和闭包设置为NULL__ qualname __设置为与函数名称相同的值。

PyObject* PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname)
返回值:新引用。

作为PyFunction_New(),但也允许设置函数对象的__qualname__属性。qualname应为unicode对象或NULL;如果为NULL,则将__qualname__属性设置为与其__name__属性相同的值。

版本3.3中的新功能。

PyObject* PyFunction_GetCode(PyObject *op)
返回值:借用引用。

返回与函数对象op关联的代码对象。

PyObject* PyFunction_GetGlobals(PyObject *op)
返回值:借用引用。

返回与函数对象op关联的全局字典。

PyObject* PyFunction_GetModule(PyObject *op)
返回值:借用引用。

返回函数对象op__模块__属性。这通常是包含模块名称的字符串,但可以通过Python代码设置为任何其他对象。

PyObject* PyFunction_GetDefaults(PyObject *op)
返回值:借用引用。

返回函数对象op的参数默认值。这可以是参数的元组或NULL

int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)

设置函数对象op的参数默认值。默认值必须为Py_None或元组。

引发SystemError,并在故障时返回-1

PyObject* PyFunction_GetClosure(PyObject *op)
返回值:借用引用。

返回与函数对象op关联的闭包。这可以是NULL或单元格对象的元组。

int PyFunction_SetClosure(PyObject *op, PyObject *closure)

设置与函数对象op关联的闭包。closure必须是Py_None或单元格对象的元组。

引发SystemError,并在故障时返回-1

PyObject *PyFunction_GetAnnotations(PyObject *op)

返回函数对象op的注释。这可以是可变字典或NULL

int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)

设置函数对象op的注释。注解必须是字典或Py_None

引发SystemError,并在故障时返回-1