Python API中一些可直接调用的函数介绍


如果你在Python直接调用中你会发现很多的函数是不能被直接调用的,当然又不能直接调用的就会有在Python中直接被调用的函数,以下就是对可以直接调用的这些Python API的相关内容的介绍。

Python直接调用中会出现不直接调用的PyParser和PyTokenizer的函数,而是直接调用下面的这些Python API:

  1. PyAPI_FUNC(node *) PyParser_ParseString
    (const char *, grammar *, int,  
  2. perrdetail *);  
  3. PyAPI_FUNC(node *) PyParser_ParseFile 
    (FILE *, const char *, grammar *, int,  
  4. char *, char *, perrdetail *);  
  5. PyAPI_FUNC(node *) PyParser_ParseStringFlags
    (const char *, grammar *, int,  
  6. perrdetail *, int);  
  7. PyAPI_FUNC(node *) PyParser_ParseFileFlags
    (FILE *, const char *, grammar *,  
  8. int, char *, char *,  
  9. perrdetail *, int);  
  10. PyAPI_FUNC(node *) PyParser_ParseStringFlagsFilename
    (const char *,  
  11. const char *,  
  12. grammar *, int,  
  13. perrdetail *, int);  
  14. /* Note that he following function is defined 
    in pythonrun.c not parsetok.c. */  
  15. PyAPI_FUNC(void) PyParser_SetError(perrdetail *);   

PyAPI_FUNC宏是用于定义公用的Python API,表明这些函数可以被外界调用。在Windows上面Python Core被编译成一个DLL,因此PyAPI_FUNC等价于大家常用的__declspec(dllexport)/__declspec(dllimport)。

这些函数把PyParser和PyTokenizer对象的接口和细节包装起来,使用者可以直接调用PyParser_ParseXXXX函数来使用PyParser和PyTokenizer的功能而无需知道PyPaser/PyTokenizer的工作方式,这可以看作是一个典型的Façade模式。以PyParser_ParseFile为例,该函数分析传入的FILE返回生成的CST。其他的函数与此类似,只是分析的对象不同和传入参数的不同。

以上就是对直接调用下面的这些Python API相关的内容的介绍,忘你会有所收获。

相关内容

    暂无相关文章

评论关闭