函数是否在python中调用表达式?

时间:2013-05-21 00:25:16

标签: python function syntax expression call

根据this answer,函数调用是一个语句,但是我在Coursera中关注的过程中他们说函数调用是一个表达式。

所以这是我的猜测:一个函数调用做了一些事情,这就是为什么它是一个语句,但在它被调用之后它会计算并传递一个值,这也使它成为一个表达式。

函数是否调用表达式?

3 个答案:

答案 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