代碼對象?

代碼對象是 CPython 實現的低級細節。 每個代表一塊尚未綁定到函數中的可執行代碼。

PyCodeObject?

用于描述代碼對象的對象的 C 結構。 此類型字段可隨時更改。

PyTypeObject PyCode_Type?

這是一個 PyTypeObject 實例,其表示Python的 code 類型。

int PyCode_Check(PyObject?*co)?

如果 co 是一個 code 對象則返回 true。

int PyCode_GetNumFree(PyCodeObject?*co)?

返回 co 中的自由變量數。

PyCodeObject* PyCode_New(int?argcount, int?kwonlyargcount, int?nlocals, int?stacksize, int?flags, PyObject?*code, PyObject?*consts, PyObject?*names, PyObject?*varnames, PyObject?*freevars, PyObject?*cellvars, PyObject?*filename, PyObject?*name, int?firstlineno, PyObject?*lnotab)?
Return value: New reference.

返回一個新的代碼對象。 如果你需要一個虛擬代碼對象來創建一個代碼幀,請使用 PyCode_NewEmpty()。 調用 PyCode_New() 直接可以綁定到準確的 Python 版本,因為字節碼的定義經常變化。

PyCodeObject* PyCode_NewEmpty(const char?*filename, const char?*funcname, int?firstlineno)?
Return value: New reference.

返回具有指定文件名、函數名和第一行號的新空代碼對象。 對于 exec() 生成的代碼對象是非法的。