千家信息网

Python执行代码的实际操作的五个步骤分别是什么呢

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,Python执行代码的实际操作的五个步骤分别是什么呢,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python执行代码要经过如下过程:1
千家信息网最后更新 2024年11月24日Python执行代码的实际操作的五个步骤分别是什么呢

Python执行代码的实际操作的五个步骤分别是什么呢,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Python执行代码要经过如下过程:

1. Tokenizer进行词法分析,把源程序分解为Token

2. Parser根据Token创建CST

3. CST被转换为AST

4. AST被编译为字节码

5. 执行字节码

当执行Python代码的时候,以代码存放在文件中的情况为例,Python会调用PyParser_ASTFromFile函数将文件的代码内容转换为AST:

  1. mod_ty

  2. PyParser_ASTFromFile(FILE *fp, const char *filename,
    int start, char *ps1,

  3. char *ps2, PyCompilerFlags *flags, int *errcode,

  4. PyArena *arena)

  5. {

  6. mod_ty mod;

  7. perrdetail err;

  8. node *n = PyParser_ParseFileFlags(fp, filename,
    &_PyParser_Grammar,

  9. start, ps1, ps2, &err, PARSER_FLAGS(flags));

  10. if (n) {

  11. mod = PyAST_FromNode(n, flags, filename, arena);PyNode_Free(n);

  12. return mod;

  13. }

  14. else {

  15. err_input(&err);

  16. if (errcode)

  17. *errerrcode = err.error;

  18. return NULL;

  19. }

  20. }

PyParser_ParseFileFlags

在Python执行代码中还要把文件转换成CST之后,PyAST_FromNode函数会把CST转换成AST。此函数定义在include\ast.h中:

PyAPI_FUNC(mod_ty) PyAST_FromNode(const node *, PyCompilerFlags *flags,  const char *, PyArena *);

看完上述内容,你们掌握Python执行代码的实际操作的五个步骤分别是什么呢的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0