関数オブジェクト
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 に設定されます。
- 関数オブジェクト 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
を返します。