Python API中一些可直接調(diào)用的函數(shù)介紹
如果你在Python直接調(diào)用中你會發(fā)現(xiàn)很多的函數(shù)是不能被直接調(diào)用的,當(dāng)然又不能直接調(diào)用的就會有在Python中直接被調(diào)用的函數(shù),以下就是對可以直接調(diào)用的這些Python API的相關(guān)內(nèi)容的介紹。
Python直接調(diào)用中會出現(xiàn)不直接調(diào)用的PyParser和PyTokenizer的函數(shù),而是直接調(diào)用下面的這些Python API:
- PyAPI_FUNC(node *) PyParser_ParseString
(const char *, grammar *, int,- perrdetail *);
- PyAPI_FUNC(node *) PyParser_ParseFile
(FILE *, const char *, grammar *, int,- char *, char *, perrdetail *);
- PyAPI_FUNC(node *) PyParser_ParseStringFlags
(const char *, grammar *, int,- perrdetail *, int);
- PyAPI_FUNC(node *) PyParser_ParseFileFlags
(FILE *, const char *, grammar *,- int, char *, char *,
- perrdetail *, int);
- PyAPI_FUNC(node *) PyParser_ParseStringFlagsFilename
(const char *,- const char *,
- grammar *, int,
- perrdetail *, int);
- /* Note that he following function is defined
in pythonrun.c not parsetok.c. */- PyAPI_FUNC(void) PyParser_SetError(perrdetail *);
PyAPI_FUNC宏是用于定義公用的Python API,表明這些函數(shù)可以被外界調(diào)用。在Windows上面Python Core被編譯成一個DLL,因此PyAPI_FUNC等價于大家常用的__declspec(dllexport)/__declspec(dllimport)。
這些函數(shù)把PyParser和PyTokenizer對象的接口和細節(jié)包裝起來,使用者可以直接調(diào)用PyParser_ParseXXXX函數(shù)來使用PyParser和PyTokenizer的功能而無需知道PyPaser/PyTokenizer的工作方式,這可以看作是一個典型的Façade模式。以PyParser_ParseFile為例,該函數(shù)分析傳入的FILE返回生成的CST。其他的函數(shù)與此類似,只是分析的對象不同和傳入?yún)?shù)的不同。
以上就是對直接調(diào)用下面的這些Python API相關(guān)的內(nèi)容的介紹,忘你會有所收獲。
【編輯推薦】