實例方法物件 (Instance Method Objects)

實例方法是PyCFunction 的包裝器 (wrapper),也是將PyCFunction 繫結 (bind) 到類別物件的一種新方式。它替代了原先對PyMethod_New(func,NULL,class) 的呼叫。

PyTypeObjectPyInstanceMethod_Type

PyTypeObject 的實例代表 Python 實例方法型別。它不會公開 (expose) 給 Python 程式。

intPyInstanceMethod_Check(PyObject*o)

如果o 是一個實例方法物件(型別為PyInstanceMethod_Type)則回傳 true。參數必須不為NULL。此函式總是會成功執行。

PyObject*PyInstanceMethod_New(PyObject*func)
回傳值:新的參照。

回傳一個新的實例方法物件,func 為任意可呼叫物件,在實例方法被呼叫時func 函式也會被呼叫。

PyObject*PyInstanceMethod_Function(PyObject*im)
回傳值:借用參照。

回傳關聯到實例方法im 的函式物件。

PyObject*PyInstanceMethod_GET_FUNCTION(PyObject*im)
回傳值:借用參照。

巨集 (macro) 版本的PyInstanceMethod_Function(),忽略了錯誤檢查。

方法物件 (Method Objects)

方法為繫結函式 (bound function) 物件。方法總是會被繫結到一個使用者定義類別的實例。未繫結方法(繫結到一個類別的方法)已不可用。

PyTypeObjectPyMethod_Type

這個PyTypeObject 實例代表 Python 方法型別。它作為types.MethodType 公開給 Python 程式。

intPyMethod_Check(PyObject*o)

如果o 是一個方法物件(型別為PyMethod_Type)則回傳 true。參數必須不為NULL。此函式總是會成功執行。

PyObject*PyMethod_New(PyObject*func,PyObject*self)
回傳值:新的參照。

回傳一個新的方法物件,func 應為任意可呼叫物件,self 為該方法應繫結的實例。在方法被呼叫時,func 函式也會被呼叫。self 必須不為NULL

PyObject*PyMethod_Function(PyObject*meth)
回傳值:借用參照。

回傳關聯到方法meth 的函式物件。

PyObject*PyMethod_GET_FUNCTION(PyObject*meth)
回傳值:借用參照。

巨集版本的PyMethod_Function(),忽略了錯誤檢查。

PyObject*PyMethod_Self(PyObject*meth)
回傳值:借用參照。

回傳關聯到方法meth 的實例。

PyObject*PyMethod_GET_SELF(PyObject*meth)
回傳值:借用參照。

巨集版本的PyMethod_Self(),忽略了錯誤檢查。