Python3 - 作为操作数的print()函数在引发SyntaxError之前不打印?

时间:2017-08-28 21:57:15

标签: python python-3.x

在我的代码中,我有嵌套的调用表达式,其中一个是print()函数。我理解print()返回None对象,None不是square(x)的有效参数,但是我很好奇为什么在引发SyntaxError之前不打印“2” 。由于return语句始终是要调用的方法的最后一部分,因此解释器在返回None之前不应该打印2并且意识到print(2)不是square()的有效操作数吗?

我的代码如下:

from operator import add, mul

def square(x):
    return mul(x, x)

add(4, square(print(2)))

提前谢谢!

1 个答案:

答案 0 :(得分:0)

Python 2上的预期行为:

  • 未打印该值
  • 未处理SyntaxError被提出

Python 3上的预期行为:

  • 打印值
  • 出现未处理的 TypeError

证据表明您实际上是在Python 2执行环境中运行。