代码之家  ›  专栏  ›  技术社区  ›  handler404

python解释器是如何接收和输出数据的?

  •  1
  • handler404  · 技术社区  · 2 年前

    当我写作时会发生什么 print('Something') ? 解释器是直接使用系统I/O方式工作,还是使用某种系统API,它提供需要在控制台中显示的信息?

    输入也是如此。如果我打电话给 input() 函数,那么python解释器本身将读取输入值,或者它将再次将这项工作委托给某个系统API,后者将包装输入。

    我知道python是用C语言编写的(至少是它的主要实现)。原来是解释器内部的C语言负责输入/输出?

    我所有寻找答案的尝试都归结为文章,他们在文章中告诉我 input() 你需要按下键盘上的一个按钮 print() 函数将在控制台中打印一些内容。我已经知道这一点,我想知道在下面的层次上发生了什么。

    1 回复  |  直到 2 年前
        1
  •  1
  •   erogluegemen    2 年前

    当你写作 print('Something') ,以下是在较低级别上发生的情况:

    1. Python解释器: Python解释器负责逐行执行代码。
    2. print()函数: 当口译员遇到 打印(“测量”) 语句中,它首先计算括号中的表达式,在这种情况下它只是一个字符串, “Something”
    3. 系统调用: Python解释器使用系统调用与操作系统或运行环境(例如控制台或终端)进行通信。系统调用是操作系统提供的接口,用于访问各种低级功能,包括输入/输出操作。
    4. 系统API: 系统调用由系统API处理。这个API是操作系统的一部分,允许Python解释器与系统的底层I/O设施进行交互。它为Python解释器提供了一种与控制台或终端通信并显示文本“Something”的方式。
    5. 显示: 最后,文本 “Something” 显示在运行Python程序的控制台或终端中。

    同样,当您使用 input() :

    1. Python解释器: Python解释器正在执行您的代码。
    2. input()函数: 当口译员遇到 input() ,它暂停 程序的执行,并等待用户输入一些文本。
    3. 系统API: 解释器使用系统API访问 系统的底层I/O设施,并等待用户 提供输入。
    4. 用户输入: 系统API从 控制台或终端,并将其传递回Python解释器。
    5. 继续执行: Python解释器使用 用户提供的输入,您可以将其分配给变量 或者根据需要在程序中使用它。

    总之,当您使用 像print()和input()这样的函数,解释器本身依赖于 操作系统提供的系统API,用于处理实际 输入和输出操作。这种抽象允许Python工作 跨不同平台和环境无缝连接。