【问题标题】:How Python handles multiline input in REPL?Python 如何处理 REPL 中的多行输入?
【发布时间】:2022-06-30 15:54:49
【问题描述】:

Python 的 REPL 逐行读取输入。 但是,函数定义由多行组成。

例如:

>>> def answer():
...   return 42
...
>>> answer()
42

Python 的解析器如何处理部分def answer(): 输入?

【问题讨论】:

  • 正如你所说,这是一个明显的部分输入。所以,一个智能的 REPL 当然会要求更多的行。

标签: python parsing read-eval-print-loop cpython language-implementation


【解决方案1】:

这取决于您要插入控制台的代码。但在这种情况下,当 Python 检测到关键字 def 引用函数声明时,它将启动一个进程,通过查看函数代码的缩进来检测函数代码的结尾。

def a():
  if 1==1:
    if not 1==1:
      pass
    else:
      return "End of execution"

如您所见,在 Python 控制台上多行编写函数时,函数的缩进或任何类似结构是基本的。

【讨论】:

    猜你喜欢
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 2017-03-03
    • 1970-01-01
    相关资源
    最近更新 更多