Python执行代码的实际操作的五个步骤详细介绍

开发 后端
本文涉及到的有Python执行代码在实际应用操作的五部分的相关的介绍,以及在执行Python代码的时,调用相关函数对文件代码的转换的具体内容的介绍。

你对 Python执行代码的五步骤的具体应用都了解吗?想详细了解Python执行代码在实际运行中实际操作步骤吗?如果你对其有想了了解的欲望的话,你就可以点击我们的文章对其进行一个更好的了解。

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

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

2. Parser根据Token创建CST

3. CST被转换为AST

4. AST被编译为字节码

5. 执行字节码

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

 

mod_ty  
PyParser_ASTFromFile(FILE *fp, const char *filename, 
int start, char *ps1,  
char *ps2, PyCompilerFlags *flags, int *errcode,   PyArena *arena)   {   mod_ty mod;   perrdetail err;   node *n = PyParser_ParseFileFlags(fp, filename, 
&_PyParser_Grammar,  
start, ps1, ps2, &err, PARSER_FLAGS(flags));   if (n) {   mod = PyAST_FromNode(n, flags, filename, arena);PyNode_Free(n);   return mod;   }   else {   err_input(&err);   if (errcode)   *errerrcode = err.error;   return NULL;   }   }      
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

PyParser_ParseFileFlags 
  • 1.

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

 

PyAPI_FUNC(mod_ty) PyAST_FromNode(const node *, PyCompilerFlags *flags,  
const char *, PyArena *);   
  • 1.
  • 2.

 

以上就是对Python执行代码要经过相关的内容的介绍,忘你会有所收获。

【编辑推荐】

  1. Python学习入门中的先搭环境的具体应用的方法介绍
  2. Python源码分析的实际相关操作步骤解析
  3. Python库如何高效的完成工作的详细介绍
  4. Python编程语言的功能优点的具体体现
  5. Python编程语言在Zope软件开发中具体应用

 

 

责任编辑:佚名 来源: 互联网
相关推荐

2010-03-19 17:39:49

Python编程

2010-03-26 18:51:51

Python作用域

2010-03-24 18:00:30

Python中文转换u

2010-03-12 15:29:19

Pythonexe

2010-06-12 10:41:23

MySQL修改数据

2010-03-10 15:54:33

Python读写文件

2010-05-28 18:16:43

MySQL 操作日志

2010-04-20 11:06:33

Oracle索引

2010-05-27 14:35:25

MySQL批量导入

2010-06-01 15:54:46

MySQL-pytho

2010-03-24 16:25:18

Python源代码

2010-07-21 15:22:07

2010-04-06 08:58:27

Oracle job

2010-05-12 13:45:25

Mysql 复制设置

2010-04-02 13:34:33

Oracle DBA

2010-04-16 17:17:31

Oracle访问

2010-06-02 13:22:18

MySQL定时任务

2010-05-27 10:35:09

查询MySQL数据

2010-04-15 13:51:06

Oracle EBS

2010-04-21 17:09:17

Oracle安装
点赞
收藏

51CTO技术栈公众号