関数オブジェクト—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/3.8/c-api/function
移動先:案内検索

関数オブジェクト

Python関数に固有の関数がいくつかあります。

type 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)

コードオブジェクト code に関連付けられた新しい関数オブジェクトを返します。 globals は、関数にアクセスできるグローバル変数を含む辞書である必要があります。

関数のdocstringとnameは、コードオブジェクトから取得されます。 __ module __グローバルから取得されます。 引数のデフォルト、注釈、およびクロージャは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__ module __ 属性を返します。 これは通常、モジュール名を含む文字列ですが、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を返します。