Python3-print()函数作为操作数不使用';是否在引发Syntaxer错误之前打印?
在我的代码中,我有嵌套的调用表达式,其中一个是Python3-print()函数作为操作数不使用';是否在引发Syntaxer错误之前打印?,python,python-3.x,Python,Python 3.x,在我的代码中,我有嵌套的调用表达式,其中一个是print()函数。我知道print()返回None对象,并且None不是square(x)的有效参数,但是我很好奇为什么在引发语法错误之前不打印“2”。由于return语句始终是要调用的方法的最后一部分,解释器是否应该在返回None并意识到print(2)不是square()的有效操作数之前打印2 我的代码如下: from operator import add, mul def square(x): return mul(x, x)
print()
函数。我知道print()
返回None对象,并且None不是square(x)
的有效参数,但是我很好奇为什么在引发语法错误之前不打印“2”。由于return语句始终是要调用的方法的最后一部分,解释器是否应该在返回None并意识到print(2)
不是square()的有效操作数之前打印2
我的代码如下:
from operator import add, mul
def square(x):
return mul(x, x)
add(4, square(print(2)))
提前谢谢你 Python 2上的预期行为:
- 未打印该值
- 引发未处理的
语法错误
Python 3上的预期行为:
- 值已打印出来
- 引发未处理的
类型错误
有证据表明您实际上是在Python2执行环境中运行的 这可能是因为您实际运行的是Python 2,print
是一条语句。您应该得到的是TypeError
,而不是SyntaxError
。