根据这篇文章:Code Like a Pythonista: Idiomatic Python
有一行说明:
"那是因为这种自动连接是Python解析器/编译器的一个特性,而不是解释器。你必须使用" +"运算符在运行时连接字符串。"
我不明白这个陈述,因为我不知道python编译器或解释器实际上是如何工作的。连接如何工作?这是因为:
>>> a = 'three'
>>> b = 'four'
>>> a b
不评估为:
>>> a = 'three'
>>> b = 'four'
>>> a b
>>> 'three' 'four'
>>> 'threefour'
是否有任何工具可以让我跟踪从原始文本开始的编译过程' *。py'直到输出从终端打印出来?
答案 0 :(得分:5)
此语句未引用Python shell。实际上,交互式输入和文件输入在这方面的表现几乎相同:在两者中,
"a" "b"
正常工作var1 var2
无法正常工作当您输入Python源代码时,无论您是如何做到这一点,它都是compiled to bytecode。此编译步骤接受字符串文字,两者之间没有任何内容,并将其视为由这些较短文字构成的单个字符串文字。然后它创建完全相同的字节码,就像编写单个连接字符串一样,并且当解释器执行该代码时,它既不能也不需要知道,在源代码中,您编写了两个字符串文字而不是一个。