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

programmingpythonserver side programming

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

链接 - 链接是最后阶段,所有函数都与其定义链接在一起,因为链接器知道所有这些函数的实现位置。此过程称为链接。

image compilation.jpg-----

注意 - Python 程序既被编译又被解释,但编译部分对程序员是隐藏的。因此,出于同样的原因,我们通常说 Python 是一种解释型语言。

我们来看一个例子。在我们的例子中,我们将使用 Python 中的 dis 模块。

安装并导入 dis 模块

要安装 dis 模块,请使用 pip −

pip install dis

要导入 dis 模块 −

import dis

示例

现在让我们看一个例子

import dis # Function to return the sum of recursive numbers def recursive_sum(n): 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 = ",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)

输出

  5           0 LOAD_FAST                0 (n)
              2 LOAD_CONST               1 (1)
              4 COMPARE_OP               1 (<=)
              6 POP_JUMP_IF_FALSE       12

  6           8 LOAD_FAST                0 (n)
             10 RETURN_VALUE

  8     >>   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               0 (None)
             30 RETURN_VALUE

相关文章