# Function オブジェクト

Functionオブジェクト固有の関数はわずかです。

type PyFunctionObject

  関数に使われるCの構造体。

PyTypeObject PyFunction_Type

  `PyTypeObject` 型のインスタンスで、 Python の関数型を表します。これは Python プログラムに `types.FunctionType` として公開されています。

int PyFunction_Check(PyObject *o)

  o が関数オブジェクト (`PyFunction_Type` 型である) 場合に真を返します。パラメータは `NULL` にできません。この関数は常に成功します。

PyObject *PyFunction_New(PyObject *code, PyObject *globals)
  戻り値: 新しい参照。

  コードオブジェクト code に関連付けられた新しい関数オブジェクトを返します。globals はこの関数からアクセスできるグローバル変数の辞書でなければなりません。

  関数のドキュメント文字列と名前はコードオブジェクトから取得されます。 `__module__` は globals から取得されます。 引数のデフォルト値やアノテーション、クロージャは `NULL` に設定されます。 `__qualname__` はコードオブジェクトの `co_qualname` フィールドと同じ値に設定されます。

PyObject *PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname)
  戻り値: 新しい参照。

  `PyFunction_New()` に似ていますが、関数オブジェクトの `__qualname__` 属性に値をセットできます。 qualname はユニコードオブジェクトか `NULL` でなくてはなりません。`NULL` だった場合、 `__qualname__` 属性にはコードオブジェクトの `co_qualname` フィールドと同じ値がセットされます。

  バージョン 3.3 で追加.

PyObject *PyFunction_GetCode(PyObject *op)
  戻り値: 借用参照。

  関数オブジェクト op に関連付けられたコードオブジェクトを返します。

PyObject *PyFunction_GetGlobals(PyObject *op)
  戻り値: 借用参照。

  関数オブジェクト op に関連付けられたglobals辞書を返します。

PyObject *PyFunction_GetModule(PyObject *op)
  戻り値: 借用参照。

  Return a borrowed reference to the `__module__` attribute of the function object op. It can be NULL.

  This is normally a `string` containing the module name, but can be set to any other object by Python code.

PyObject *PyFunction_GetDefaults(PyObject *op)
  戻り値: 借用参照。

  関数オブジェクト op の引数のデフォルト値を返します。 引数のタプルか `NULL` になります。

int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)

  関数オブジェクト op の引数のデフォルト値を設定します。 defaults は `Py_None` かタプルでなければいけません。

  失敗した時は、 `SystemError` を発生させ、 `-1` を返します。

PyObject *PyFunction_GetClosure(PyObject *op)
  戻り値: 借用参照。

  関数オブジェクト op に設定されたクロージャを返します。 `NULL` か cell オブジェクトのタプルです。

int PyFunction_SetClosure(PyObject *op, PyObject *closure)

  関数オブジェクト op にクロージャを設定します。 closure は、`Py_None` もしくは cell オブジェクトのタプルでなければなりません。

  失敗した時は、 `SystemError` を発生させ、 `-1` を返します。

PyObject *PyFunction_GetAnnotations(PyObject *op)
  戻り値: 借用参照。

  関数オブジェクト op のアノテーションを返します。 返り値は修正可能な辞書か `NULL` になります。

int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)

  関数オブジェクト op のアノテーションを設定します。 annotations は辞書か、`Py_None` でなければなりません。

  失敗した時は、 `SystemError` を発生させ、 `-1` を返します。