實例方法物件 (Instance Method Objects)¶
實例方法是 PyCFunction
的包裝器 (wrapper),也是將 PyCFunction
繫結 (bind) 到類別物件的一種新方式。它替代了原先對 PyMethod_New(func, NULL, class)
的呼叫。
-
PyTypeObject
PyInstanceMethod_Type
¶ PyTypeObject
的實例代表 Python 實例方法型別。它不會公開 (expose) 給 Python 程式。
-
int
PyInstanceMethod_Check
(PyObject *o)¶ 如果 o 是一個實例方法物件(型別為
PyInstanceMethod_Type
)則回傳 true。參數必須不為NULL
。此函式總是會成功執行。
-
PyObject *
PyInstanceMethod_New
(PyObject *func)¶ - 返回值:新的引用。
回傳一個新的實例方法物件,func 為任意可呼叫物件,在實例方法被呼叫時 func 函式也會被呼叫。
-
PyObject *
PyInstanceMethod_GET_FUNCTION
(PyObject *im)¶ - 返回值:借入的引用。
巨集 (macro) 版本的
PyInstanceMethod_Function()
,忽略了錯誤檢查。
方法物件 (Method Objects)¶
方法為繫結函式 (bound function) 物件。方法總是會被繫結到一個使用者定義類別的實例。未繫結方法(繫結到一個類別的方法)已不可用。
-
PyTypeObject
PyMethod_Type
¶ 這個
PyTypeObject
實例代表 Python 方法型別。它作為types.MethodType
公開給 Python 程式。
-
int
PyMethod_Check
(PyObject *o)¶ 如果 o 是一個方法物件(型別為
PyMethod_Type
)則回傳 true。參數必須不為NULL
。此函式總是會成功執行。
-
PyObject *
PyMethod_New
(PyObject *func, PyObject *self)¶ - 返回值:新的引用。
回傳一個新的方法物件,func 應為任意可呼叫物件,self 為該方法應繫結的實例。在方法被呼叫時,func 函式也會被呼叫。self 必須不為
NULL
。
-
PyObject *
PyMethod_GET_FUNCTION
(PyObject *meth)¶ - 返回值:借入的引用。
巨集版本的
PyMethod_Function()
,忽略了錯誤檢查。
-
PyObject *
PyMethod_GET_SELF
(PyObject *meth)¶ - 返回值:借入的引用。
巨集版本的
PyMethod_Self()
,忽略了錯誤檢查。