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_GetModule
(PyObject *op)¶ - 返回值:借用引用。
返回函数对象op的__模块__属性。这通常是包含模块名称的字符串,但可以通过Python代码设置为任何其他对象。
- int
PyFunction_SetDefaults
(PyObject *op, PyObject *defaults)¶ 设置函数对象op的参数默认值。默认值必须为Py_None或元组。
引发
SystemError
,并在故障时返回-1
。
- int
PyFunction_SetClosure
(PyObject *op, PyObject *closure)¶ 设置与函数对象op关联的闭包。closure必须是Py_None或单元格对象的元组。
引发
SystemError
,并在故障时返回-1
。
- int
PyFunction_SetAnnotations
(PyObject *op, PyObject *annotations)¶ 设置函数对象op的注释。注解必须是字典或Py_None。
引发
SystemError
,并在故障时返回-1
。