根据这篇文章:像Pythonista一样编码:惯用的Python
有一行指出:
“这是因为这种自动连接是Python解析器/编译器的功能,而不是解释器的功能。您必须在运行时使用“+”运算符来连接字符串。”
我不明白这个说法,因为我不知道python编译器或解释器实际上是如何工作的。串联是如何工作的?因为:
>>> a = 'three'
>>> b = 'four'
>>> a b
不会评估:
>>> a = 'three'
>>> b = 'four'
>>> a b
>>> 'three' 'four'
>>> 'threefour'
是否有任何工具可以让我跟踪从原始文本“*.py”开始直到从终端打印输出的编译过程?
本声明不涉及Python shell。事实上,交互式输入和文件输入在这方面的行为几乎相同:在两者中,
"a" "b"
有效var1 var2
不起作用当您输入Python源代码时,无论您具体如何操作,它都会首先编译为字节码。此编译步骤接受字符串literals,中间不包含任何内容,并将其视为由这些较短文字组成的单个字符串文字。然后,它创建完全相同的字节码,就好像编写了单个串联字符串一样,并且当解释器执行该代码时,它既不能也不需要知道,在源代码中,您编写了两个字符串文字而不是一个。