関数オブジェクト
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の新機能。
- 関数オブジェクト op に関連付けられているコードオブジェクトを返します。
- 関数オブジェクト op に関連付けられたグローバルディクショナリを返します。
- 関数オブジェクト op の __ module __ 属性を返します。 これは通常、モジュール名を含む文字列ですが、Pythonコードによって他のオブジェクトに設定できます。
- 関数オブジェクト op の引数のデフォルト値を返します。 これは、引数のタプルまたは
NULL
にすることができます。
- int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)
関数オブジェクト op の引数のデフォルト値を設定します。 defaults は
Py_None
またはタプルである必要があります。SystemError を発生させ、失敗すると
-1
を返します。
- 関数オブジェクト op に関連付けられたクロージャを返します。 これは、
NULL
またはセルオブジェクトのタプルにすることができます。
- int PyFunction_SetClosure(PyObject *op, PyObject *closure)
関数オブジェクト op に関連付けられたクロージャを設定します。 Closure は、
Py_None
またはセルオブジェクトのタプルである必要があります。SystemError を発生させ、失敗すると
-1
を返します。
- 関数オブジェクト op のアノテーションを返します。 これは、変更可能な辞書または
NULL
にすることができます。
- int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)
関数オブジェクト op の注釈を設定します。 注釈は辞書または
Py_None
である必要があります。SystemError を発生させ、失敗すると
-1
を返します。