【问题标题】:Lambda expression not returning valueLambda 表达式不返回值
【发布时间】:2018-09-05 12:06:36
【问题描述】:

我不明白为什么这段代码返回对象的 repr 而不是值 20。

>>> a = 10
>>> lambda a: a*2

这是返回到标准输出的内容:

<function <lambda> at 0x02D93780>

【问题讨论】:

  • 你需要调用函数来获取它的返回值。
  • lambda是运算符,必​​须与map等函数配合使用
  • @grshankar 或者像任何其他函数一样调用。

标签: python lambda expression


【解决方案1】:

你需要调用函数并将参数传递给它。

a = 10
(lambda a: a*2)(a)

【讨论】:

    【解决方案2】:
    # declaring the lambda
    my_lambda_function = lambda a: a*2
    
    # calling the lambda
    my_lambda_function(10)
    

    【讨论】:

      【解决方案3】:

      您需要将函数对象分配给某个变量以供将来使用。 Lambda 表达式创建函数对象(如 def 语句),您需要调用它来检索结果

      >>> a = 10
      >>> myfunc = lambda a: a*2
      >>> myfunc(11) #22
      22
      

      【讨论】:

        【解决方案4】:

        因为你创建了一个函数,所以它把函数打印到控制台。创建函数时,它会打印函数的文字内存位置。您必须将函数存储在一个变量中并打印它以获取输出,而不是内存位置和函数类型。这是一个例子:

        >>> a = 10
        
        >>> lambda a: a *2
        
        <function <lambda> at 0x033E7978>
        >>> print(a)
        
        10
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-06
          • 2011-06-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多