在我的代码中,我有嵌套的调用表达式,其中一个是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)))
提前谢谢!
答案 0 :(得分:0)
Python 2上的预期行为:
SyntaxError
被提出Python 3上的预期行为:
TypeError
证据表明您实际上是在Python 2执行环境中运行。