Function Objects

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

  • PyFunctionObject

    • 用于函数的 C 结构。
  • PyTypeObject PyFunction_Type

    • 这是PyTypeObject的实例,代表 Python 函数类型。它对types.FunctionType公开给 Python 程序员。

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

该函数的文档字符串和名称是从代码对象中检索的。 * __ module __ 是从 globals *中检索的。参数 defaults,注解和闭包设置为NULL。 * __ qualname __ *设置为与函数名称相同的值。

PyFunction_New()一样,还允许设置Function对象的__qualname__属性。 * qualname *应该是 unicode 对象或NULL;如果NULL,则__qualname__属性设置为与其__name__属性相同的值。

版本 3.3 中的新Function。

返回与Function对象* op *关联的代码对象。

  • PyObject * PyFunction_GetGlobals(PyObject ** op *)
    • *返回值:借用参考。

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

  • PyObject * PyFunction_GetModule(PyObject ** op *)
    • *返回值:借用参考。

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

  • PyObject * PyFunction_GetDefaults(PyObject ** op *)
    • *返回值:借用参考。

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

  • int PyFunction_SetDefaults(PyObject *op PyObject defaults *)
    • 为Function对象* op *设置参数默认值。 默认值必须为Py_None或 Tuples。

引发SystemError并在失败时返回-1

  • PyObject * PyFunction_GetClosure(PyObject ** op *)
    • *返回值:借用参考。

返回与Function对象* op *关联的闭包。这可以是NULL或单元格对象的 Tuples。

  • int PyFunction_SetClosure(PyObject *op PyObject closure *)
    • 设置与Function对象* op *关联的闭包。 * closure *必须为Py_None或单元格对象的 Tuples。

引发SystemError并在失败时返回-1

  • PyObject * PyFunction_GetAnnotations(PyObject ** op *)
    • *返回值:借用参考。

返回Function对象的 Comments* op *。这可以是可变字典或NULL

  • int PyFunction_SetAnnotations(PyObject *op PyObject annotations *)
    • 设置Function对象* op *的 Comments。 Comments必须是字典或Py_None

引发SystemError并在失败时返回-1