代碼對象?
代碼對象是 CPython 實現的低級細節。 每個代表一塊尚未綁定到函數中的可執行代碼。
-
PyCodeObject
? 用于描述代碼對象的對象的 C 結構。 此類型字段可隨時更改。
-
PyTypeObject
PyCode_Type
? 這是一個
PyTypeObject
實例,其表示Python的code
類型。
-
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()
或生成的代碼對象是非法的。