Function オブジェクト¶
Functionオブジェクト固有の関数はわずかです。
-
PyFunctionObject
¶ 関数に使われるCの構造体。
-
PyTypeObject
PyFunction_Type
¶ PyTypeObject
型のインスタンスで、 Python の関数型を表します。これは Python プログラムにtypes.FunctionType
として公開されています。
-
int
PyFunction_Check
(PyObject *o)¶ o が関数オブジェクト (
PyFunction_Type
型なら) なら true を返します。引数は NULL であってはいけません。
-
PyObject*
PyFunction_New
(PyObject *code, PyObject *globals)¶ - Return value: New reference.
コードオブジェクト code に関連付けられた新しい関数オブジェクトを返します。globals はこの関数からアクセスできるグローバル変数の辞書でなければなりません。
関数のドキュメント文字列と名前はコードオブジェクトから取得されます。 __module__ は globals から取得されます。引数のデフォルト値やアノテーション、クロージャは NULL に設定されます。 __qualname__ は関数名と同じ値に設定されます。
-
PyObject*
PyFunction_NewWithQualName
(PyObject *code, PyObject *globals, PyObject *qualname)¶ - Return value: New reference.
PyFunction_New()
に似ていますが、関数オブジェクトの__qualname__
属性に値をセットすることができます。 qualname はユニコードオブジェクトか NULL でなくてはなりません; NULL だった場合、__qualname__
属性には__name__
属性と同じ値がセットされます。バージョン 3.3 で追加.
-
PyObject*
PyFunction_GetCode
(PyObject *op)¶ - Return value: Borrowed reference.
関数オブジェクト op に関連付けられたコードオブジェクトを返します。
-
PyObject*
PyFunction_GetGlobals
(PyObject *op)¶ - Return value: Borrowed reference.
関数オブジェクト op に関連付けられたglobals辞書を返します。
-
PyObject*
PyFunction_GetModule
(PyObject *op)¶ - Return value: Borrowed reference.
関数オブジェクト op の __module__ 属性を返します。これには普通はモジュール名の文字列が入っていますが、Python コードから他のオブジェクトをセットされることもあります。
-
PyObject*
PyFunction_GetDefaults
(PyObject *op)¶ - Return value: Borrowed reference.
関数オブジェクト op の引数のデフォルト値を返します。引数のタプルか NULL になります。
-
int
PyFunction_SetDefaults
(PyObject *op, PyObject *defaults)¶ 関数オブジェクト op の引数のデフォルト値を設定します。defaults は Py_None かタプルでなければいけません。
失敗した時は、
SystemError
を発生させ、-1
を返します。
-
PyObject*
PyFunction_GetClosure
(PyObject *op)¶ - Return value: Borrowed reference.
関数オブジェクト 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
を返します。