Objek Fungsi
************

Terdapat beberapa fungsi spesifik untuk fungsi Python.

PyFunctionObject

   Struktur C yang digunakan untuk fungsi.

PyTypeObject PyFunction_Type

   Ini adalah instance dari "PyTypeObject" dan mewakili jenis fungsi
   Python. Itu diekspos ke programmer Python sebagai
   "types.FunctionType".

int PyFunction_Check(PyObject *o)

   Mengembalikan nilai true jika *o* adalah objek fungsi (memiliki
   tipe "PyFunction_Type"). Parameter tidak boleh "NULL". Fungsi ini
   selalu sukses.

PyObject* PyFunction_New(PyObject *code, PyObject *globals)
    *Return value: New reference.*

   Mengembalikan objek fungsi baru yang terkait dengan objek kode
   *code*. *global* harus berupa dictionary dengan variabel global
   yang dapat diakses oleh fungsi tersebut.

   Docstring dan nama fungsi diambil dari objek kode. *__module__*
   diambil dari *global*. Default argumen, anotasi dan penutupan
   diatur ke "NULL". *__qualname__* diatur ke nilai yang sama dengan
   nama fungsi.

PyObject* PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname)
    *Return value: New reference.*

   Seperti "PyFunction_New()", tetapi juga memungkinkan pengaturan
   atribut "__qualname__" pada objek fungsi. *qualname* harus berupa
   objek unicode atau "NULL"; jika "NULL", atribut "__qualname__"
   diatur ke nilai yang sama dengan atribut "__name__".

   Baru pada versi 3.3.

PyObject* PyFunction_GetCode(PyObject *op)
    *Return value: Borrowed reference.*

   Mengembalikan objek kode yang terkait dengan objek fungsi *op*.

PyObject* PyFunction_GetGlobals(PyObject *op)
    *Return value: Borrowed reference.*

   Mengembalikan dictionary global yang terkait dengan objek fungsi
   *op*.

PyObject* PyFunction_GetModule(PyObject *op)
    *Return value: Borrowed reference.*

   Mengembalikan atribut *__module__* dari objek fungsi *op*. Ini
   biasanya berupa string yang berisi nama modul, tetapi dapat diatur
   ke objek lain dengan kode Python.

PyObject* PyFunction_GetDefaults(PyObject *op)
    *Return value: Borrowed reference.*

   Mengembalikan nilai argumen default dari objek fungsi *op*. Ini
   bisa berupa argumen tuple atau "NULL".

int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)

   Menetapkan nilai argumen default untuk objek fungsi *op*. *default*
   harus "Py_None" atau tuple.

   Menimbulkan "SystemError" dan mengembalikan "-1" jika gagal.

PyObject* PyFunction_GetClosure(PyObject *op)
    *Return value: Borrowed reference.*

   Mengembalikan penutupan yang terkait dengan objek fungsi *op*. Ini
   bisa berupa "NULL" atau tuple objek sel.

int PyFunction_SetClosure(PyObject *op, PyObject *closure)

   Mengatur penutupan yang terkait dengan objek fungsi *op*. *closure*
   harus berupa "Py_None" atau tuple objek sel.

   Menimbulkan "SystemError" dan mengembalikan "-1" jika gagal.

PyObject *PyFunction_GetAnnotations(PyObject *op)
    *Return value: Borrowed reference.*

   Kembalikan anotasi objek fungsi *op*. Ini bisa berupa dictionary
   yang bisa berubah atau "NULL".

int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)

   Mengatur anotasi untuk objek fungsi *op*. *annotations* harus
   berupa dictionary atau "Py_None".

   Menimbulkan "SystemError" dan mengembalikan "-1" jika gagal.
