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

与Ruby相比,Python的局限性:lambda的

麹浩瀚
2023-03-14
问题内容

我正在浏览WikiVS的一些页面,引自以下内容:

因为Python中的lambda仅限于表达式且不能包含语句

我想知道将有什么限制(最好与Ruby语言相比)的一个很好的示例(或更多示例)。

感谢您的回答,评论和反馈!


问题答案:

我认为您并不是真正在问lambda,而是 内联函数

这确实是Python严重令人讨厌的限制之一:您不能内联定义一个函数(一个实函数,而不仅仅是一个表达式);您必须给它起个名字。这非常令人沮丧,因为其他所有现代脚本语言都可以做到这一点,而不得不离线移动函数通常会非常痛苦。这也令人沮丧,因为我感到Python字节码可以轻松地表示这一点-
只是语言语法无法做到。

Javascript:

responses = {
        "resp1": {
                "start": function() { ...  },
                "stop": function() { ... },
        },
        "resp2": {
                "start": function() { ...  },
                "stop": function() { ... },
        },
        ...
}
responses["resp1"]["start"]();

卢阿:

responses = {
        resp1 = {
                start = function() ...  end;
                end = function() ...  end;
        };
        ...
}
responses.resp1.start();

红宝石:

responses = {
    "resp1" => {
        "start" => lambda { },
        "stop" => lambda { },
    },
}
responses["resp1"]["start"].call

蟒蛇:

def resp1_start():
    pass
def resp1_stop():
    pass
responses = {
    "resp1": {
        "start": resp1_start,
        "stop": resp1_stop,
    },
}
responses["resp1"]["start"]()

请注意,JavaScript和Lua没有lambda:它们没有理由存在,因为内联函数以更加自然和通用的方式覆盖了它们。

我可能会将此视为最烦人的Python日常限制。



 类似资料:
  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 对我来说,英特尔语法更容易阅读。如果我只关注Intel语法来遍历汇编林,我会错过任何事情吗?我有什么理由要切换到AT&T(除了能够读取其他人的AT&T程序集之外

  • 问题内容: 我试图找出如果将主键更改为BIGINT(20)时表的性能是否会下降。目前,我正在使用INT(7),并且已经有大约 300.000个条目具有大ID(7或8位数字) 。我已经搜索了很多东西,但只发现它使用了更多的磁盘空间(这很明显)。 我所有的ID现在都有7位数字,但是我的客户希望更改为8位数字。将来我将无法轻松更改软件,因此我考虑现在使用BIGINT(20)以防万一。即使我不需要使用BI

  • Selenium的局限性主要如下: Selenium不支持桌面应用程序的自动化测试。 Selenium需要高技能才能更有效地自动化测试。 由于Selenium是开源软件,因此您必须依靠社区论坛来解决技术问题。 无法使用Selenium对Web服务(如SOAP或REST)执行自动化测试。 使用者应该至少知道或熟悉一种受支持的编程语言,以便在Selenium WebDriver中创建测试脚本。 它没有

  • 本文向大家介绍财务比率的重要性和局限性是什么?,包括了财务比率的重要性和局限性是什么?的使用技巧和注意事项,需要的朋友参考一下 财务比率的重要性如下- 通过分析和检查以前的结果,比率分析可以在不同项目之间进行关联。 比率分析可用于准备预算,制定政策以及计划未来。 比率分析表明公司是否正在改善。 比率分析充当效率的评估者。 可以进行公司间比较。 讲述短期流动性头寸。 长期偿付能力可以衡量。 借助比率

  • 例如,考虑具有“see”功能的类“man”,以及不应该具有该功能的子类“blindman”,但应该具有“man”所具有的所有其他功能。 我能想出的唯一解决方案是拥有一个抽象类“man”,以及两个子类“seeingman”和“blindman”,其中SeeinMan添加了一个函数“see”。 然而,这个解决方案的问题是,如果我现在想添加一个“Deafman”类-它扩展了什么?看见人?如果那个人又聋又

  • 本文向大家介绍Python与Ruby,包括了Python与Ruby的使用技巧和注意事项,需要的朋友参考一下 让我们看看Python和Ruby之间的主要区别。 Python Ruby 它支持书写功能 它不支持书写功能 Web框架,例如Django,Flask,Bottle等。, Web框架,例如Ruby on Rail,Hanami,Sinatra等, Python不支持mixins Ruby支持m

  • 本文向大家介绍Ruby与Python | 相似和不同之处,包括了Ruby与Python | 相似和不同之处的使用技巧和注意事项,需要的朋友参考一下 Ruby与Python 如果我们谈论Ruby和Python,它们都是高级编程语言。另一方面,它们都有一些相似之处和不同之处。让我们先谈谈它们的相似之处。 Ruby和Python的相似之处 您可以使用它们两者来开发软件并分发它们,而无需支付任何许可费用。