Python 编译和链接的过程是什么

Python 编译和链接的过程是什么

编译 − Python中的源代码被保存为.py文件,然后被编译成称为字节码的格式,字节码再转换为机器码。编译完成后,代码被存储在.pyc文件中,并且在源代码更新时重新生成。这个过程被称为编译。

链接 − 链接是最后阶段,所有的函数被链接到它们的定义上,因为链接器知道这些函数都在哪里实现的。这个过程被称为链接。

Python 编译和链接的过程是什么

注意 − 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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程