根据this answer,函数调用是一个语句,但是我在Coursera中关注的过程中他们说函数调用是一个表达式。
所以这是我的猜测:一个函数调用做了一些事情,这就是为什么它是一个语句,但在它被调用之后它会计算并传递一个值,这也使它成为一个表达式。
函数是否调用表达式?
答案 0 :(得分:11)
来电是an expression;它列在表达式参考文档中。
如果是声明,则不能将其用作表达式的一部分;语句可以包含表达式,但不是相反。
例如,return expression
是一个陈述;它使用表达式来确定它的行为;表达式的结果是当前函数返回的结果。您可以将调用用作该表达式的一部分:
return some_function()
但是,您无法使用return
作为通话的一部分:
some_function(return)
那将是语法错误。
return
是'做某事';它结束函数并返回表达式的结果。表达本身并不能使函数返回。
如果一个python调用不是一个表达式,你就永远无法将调用和其他expression atoms混合到更复杂的表达式中。
答案 1 :(得分:0)
函数调用是表达式,因此您可以在print
或=
等语句中使用它们:
x = len('hello') # The expression evaluates to 5
print hex(48) # The expression evaluates to '0x30'
在Python中,函数就像整数和字符串一样。与其他对象一样,函数具有属性和方法。使函数可调用的原因是__call__
方法:
>>> def square(x):
return x * x
>>> square(10)
100
>>> square.__call__(10)
100
括号分派到__call__
方法。
这是Python工作原理的核心。希望您发现这些见解很有帮助。
答案 2 :(得分:0)
表达式也是 python 中的语句。函数是一个表达式,因为它返回一个值,但 Python 中的表达式也是语句。 expression statements