【问题标题】:Is a function call an expression in python?函数调用是python中的表达式吗?
【发布时间】:2013-05-15 15:29:50
【问题描述】:

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

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

函数调用是表达式吗?

【问题讨论】:

  • 做某事”这个词非常含糊且具有误导性,请不要过度解读。
  • 我认为这个答案有点令人困惑,甚至可能具有误导性。但是,如果您阅读 cmets 的答案,他们会解释一切。 (其他答案也有帮助)。函数调用是一个表达式。由于任何表达式也是表达式语句,这意味着函数调用也是语句。

标签: python function syntax expression call


【解决方案1】:

表达式也是python中的语句。函数是一个表达式,因为它返回一个值,但 python 中的表达式也是语句。 expression statements

【讨论】:

    【解决方案2】:

    函数调用是表达式,因此您可以在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 工作原理的核心。希望这些见解对您有所帮助。

    【讨论】:

    • 非常感谢您的宝贵时间!真的很有用!我试图选择两个答案,但我不能。学到了很多!万事如意!
    【解决方案3】:

    来电是an expression;它列在表达式参考文档中。

    如果是语句,则不能将其用作表达式的一部分;语句可以包含表达式,但反之则不行。

    例如,return expression 是一个语句;它使用表达式来确定它的行为;表达式的结果是当前函数返回的结果。您可以将调用用作该表达式的一部分:

    return some_function()
    

    但是,您不能在通话中使用return

    some_function(return)
    

    那将是一个语法错误。

    “做某事”的是return;它结束函数并返回表达式的结果。使函数返回的不是表达式本身。

    如果 python 调用不是表达式,您将永远无法将调用和其他 expression atoms 混合成更复杂的表达式。

    【讨论】:

    • 哇!感谢大家!非常感谢你们!在 S.O. 的第一次体验真是太棒了! :)
    猜你喜欢
    • 2016-11-05
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多