当前位置: 首页 > 面试题库 >

lambda和常规函数之间的python有什么区别?

钱欣悦
2023-03-14
问题内容

我对python级别的lambda函数和常规函数(用定义def)之间的差异感到好奇。(我知道对程序员有什么区别,以及何时使用每个程序员。)

>>> def a():
    return 1

>>> b = lambda: 1
>>> a
<function a at 0x0000000004036F98>
>>> b
<function <lambda> at 0x0000000004031588>

如我们所见-python 知道b是一个lambda函数,并且a是一个常规函数。这是为什么?它们 与python有 什么区别?


问题答案:

它们是同一类型,因此它们的处理方式相同:

>>> type(a)
<type 'function'>
>>> type(b)
<type 'function'>

Python还知道将b其定义为lambda函数,并将其设置为函数名称:

>>> a.func_name
'a'
>>> b.func_name
'<lambda>'

换句话说,它影响了该函数将获得的名称,但是就Python而言,这两个函数都是函数,这意味着它们通常可以以相同的方式使用。有关酸洗的功能和lambda函数之间的重要区别,请参见以下mgilson的评论。



 类似资料:
  • 问题内容: 我一直在阅读iBooks中的快速编程指南。有人可以向我解释函数和闭包之间的区别是什么。只是它没有名称并且可以在表达式中使用? 问题答案: 函数实际上只是命名为闭包。以下至少在概念上是等效的: 在使用声明方法的情况下,这变得有些复杂,例如,关于自动插入公共命名参数等,添加了一些有趣的糖,例如,变为`func myMethod(foo:Int, #bar:Int, 但是,即使方法只是闭包的

  • 问题内容: OpenAI的强化学习的REINFORCE和actor-critic示例具有以下代码: 加强: 演员评论家: 一种正在使用,另一种正在使用。 据我所知,文档没有对它们之间进行任何明确的区分。 我很高兴知道这些功能之间的区别。 问题答案: 沿着 新的维度 连接张量序列。 在给 定维度上 连接给定序列张量的序列。 因此,如果和具有形状(3,4),则将具有形状(6,4),并将具有形状(2,3

  • 问题内容: 显然xrange更快,但我不知道为什么它更快(到目前为止,除了轶事之外还没有证据表明它更快)或除此之外还有什么不同 问题答案: 在Python 2.x中: 创建一个列表,所以如果你这样做,则会在内存中创建一个包含9999999元素的列表。 是一个延迟计算的序列对象。 在Python 3中,它等效于,并且必须使用来获取列表。

  • 问题内容: 我有以下功能 这段代码: 我的问题可能有点难以理解,所以请忍受:是什么使该代码段与常规调用完全区分开,或者是什么使该代码段需要引用函数变量而不是常规调用?() 我怎么知道应该在哪里引用该函数,以及什么时候该真正调用它? 问题答案: 好吧,该属性期望对函数的引用,以便在单击元素时执行该函数。通常是: 要么 (但是,当然,最好使用和) 请注意,它们都是如何引用函数而不是调用。 当某些东西需

  • 问题内容: 我一直以为功能和方法是相同的,直到我通过“ Swift编程语言”电子书学习Swift 之前。我发现我 不能greet(“John”, “Tuesday”)用来调用在类中声明的函数, Here is the code:- 当我在Objective-C中编程时,我从未意识到这种差异。 Swift中的函数和方法之间有什么区别? 在Swift中什么时候使用函数以及何时使用方法? 问题答案: 经

  • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型