当前位置: 首页 > 编程笔记 >

在python中进行编译和链接的过程是什么?

周奇
2023-03-14
本文向大家介绍在python中进行编译和链接的过程是什么?,包括了在python中进行编译和链接的过程是什么?的使用技巧和注意事项,需要的朋友参考一下

编译:python中的源代码保存为.py文件,然后将其编译为称为字节码的格式,然后将字节码转换为机器码。编译后,代码存储在.pyc文件中,并在更新源代码时重新生成。此过程称为编译。

链接:链接是最后一个阶段,其中所有功能都与它们的定义链接在一起,因为链接器知道在哪里实现所有这些功能。此过程称为链接。

示例

import dis
def recursive_sum(n):
"""Function to return the sum of recursive numbers"""
if n <= 1:
return n
else:
return n + recursive_sum(n-1)

# change this value for a different result
number = 16
if number < 0:
print("The sum is",recursive_sum(number))
# by using dis module ,the bytecode is loaded into machine code ,and a piece of code that reads each instruction in the bytecode and executes whatever operation is indicated.
dis.dis(recursive_sum)

输出结果

The sum is 136
4 0 LOAD_FAST 0 (n)
2 LOAD_CONST 1 (1)
4 COMPARE_OP 1 (<=)
6 POP_JUMP_IF_FALSE 12

5 8 LOAD_FAST 0 (n)
10 RETURN_VALUE

7 >> 12 LOAD_FAST 0 (n)
14 LOAD_GLOBAL 0 (recursive_sum)
16 LOAD_FAST 0 (n)
18 LOAD_CONST 1 (1)
20 BINARY_SUBTRACT
22 CALL_FUNCTION 1
24 BINARY_ADD
26 RETURN_VALUE
28 LOAD_CONST 2 (None)
30 RETURN_VALUE
 类似资料:
  • 主要内容:编译(Compile),链接(Link),总结我们平时所说的程序,是指双击后就可以直接运行的程序,这样的程序被称为 可执行程序(Executable Program)。在 Windows 下,可执行程序的后缀有 和 (其中 比较常见);在类 UNIX 系统(Linux、Mac OS 等)下,可执行程序没有特定的后缀,系统根据文件的头部信息来判断是否是可执行程序。 可执行程序的内部是一系列计算机指令和数据的集合,它们都是二进制形式的,CPU 可

  • 虽然我们到现在为止还没有写任何一行代码,但我们确实得到了一个完整的可运行的程序。要编译运行程序,可以选择Build-(或按快捷键F7),编译该程序。编译完后再选择Build-Execute Hello.exe(或按快捷键CTRL+F5),运行该程序。也可以直接按CTRL+F5,系统提示是否编译,回答“Yes”,Visual Studio将自动编译链接并运行Hello.exe程序。 提示:在Buil

  • 我成功地编写了一个带有点精灵的标准基本变换反馈粒子系统。没有闪烁,粒子从一个缓冲区更新到下一个缓冲区,然后进行渲染,然后输出缓冲区在下一次迭代时成为输入缓冲区。所有GPU端,标准转换反馈。精彩的一个大问题是:只有在我不使用gl_PointCoord的情况下,它才有效。在我的点精灵中使用平面颜色效果很好。但我需要gl_PointCoord做任何有意义的事。我所有的着色器,不管是否使用gl_Point

  • 推荐: http://www.ruanyifeng.com/blog/2014/11/compiler.html Bulid过程可以分解为4个步骤:预处理(Prepressing), 编译(Compilation)、汇编(Assembly)、链接(Linking) 以c语言为例: 1 预处理 预编译过程主要处理那些源文件中的以“#”开始的预编译指令,主要处理规则有: 将所有的“#define”删除

  • 编译和链接参数是每一个C/C++程序员需要经常面对的问题。构建每一个C/C++应用均需要经过编译和链接两个步骤,CGO也是如此。 本节我们将简要讨论CGO中经常用到的编译和链接参数的用法。 2.10.1 编译参数:CFLAGS/CPPFLAGS/CXXFLAGS 编译参数主要是头文件的检索路径,预定义的宏等参数。理论上来说C和C++是完全独立的两个编程语言,它们可以有着自己独立的编译参数。 但是因

  • 问题内容: 我试图更清楚地了解python编译器/解释器的过程。不幸的是,我没有上过口译课,也没有读过很多关于口译的文章。 基本上,我现在所了解的是,.py文件中的Python代码首先被编译为python字节码(我认为这是我偶尔看到的.pyc文件?)。接下来,字节码被编译成机器码,这是处理器真正理解的语言。差不多,我已经读过这个线程。为什么python在解释之前将源代码编译为字节码? 考虑到我对编