Python 与 Ruby 相比的限制:lambda

2023-11-22

我浏览了 WikiVS 的一些页面,我引用了这些页面:

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

我想知道这个限制的一个很好的例子(或更多),最好与 Ruby 语言相比。

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


我不认为你真的在问 lambda,但是内联函数.

这确实是 Python 非常恼人的限制之一:你不能内联定义一个函数(一个真正的函数,而不仅仅是一个表达式);你必须给它一个名字。这是非常令人沮丧的,因为所有其他现代脚本语言都这样做,并且必须将函数移出线外通常是非常痛苦的。这也令人沮丧,因为我有一种感觉 Python 字节码可以简单地表示这一点——只是语言语法不能。

JavaScript:

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

Lua:

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

Ruby:

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

Python:

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 与 Ruby 相比的限制:lambda 的相关文章

  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • 为什么我的代码不能根据字典解码加密字符串?

    我有一本字典 其中包含代表字母的键和值 例如一个简单的 DICT CODE b g n a p o x d t y 我收到了一个加密代码 并将该字符串转换为一个列表 其中每个项目都是一个单词 我需要根据字典中的项目来解决它 代码示例是 wo
  • 使用 Django Rest 保存 Base64ImageField 类型会将其保存为原始图像。如何将其转换为普通图像

    我的模型中有 5 个图像字段 imageS imageS imageS imageS 和 imageE 我正在尝试按以下方式保存图像 图像的类型Base64ImageField images imageA imageB imageC ima
  • 使用 Ruby 通过 Outlook 发送消息的最简单方法是什么?

    我的工作要求我为某些测试自动生成电子邮件 我一直在四处寻找 但一直未能找到可以快速实施的合理解决方案 它需要在 Outlook 中 而不是其他邮件服务器中 因为我们有一些奇怪的身份验证规则 并且我们需要保存草稿的选项 而不仅仅是发送消息 显
  • 可以用 Django 制作移动应用程序吗?

    我想知道我是否可以在我的网站上使用 Django 代码 并以某种方式在移动应用程序 Flutter 等框架中使用它 那么是否可以使用我现在拥有的 Django 后端并在移动应用程序中使用它 所以就像models views etc 是的 有
  • python是带有字符串的运算符行为[重复]

    这个问题在这里已经有答案了 我无法理解以下行为 我正在创建 2 个字符串 并使用 is 运算符来比较它 对于第一种情况 它的工作方式有所不同 对于第二种情况 它按预期工作 当我使用逗号或空格时 它显示是什么原因False与比较is当没有使用
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • 动态 __init_subclass__ 方法的参数绑定

    我正在尝试让类装饰器工作 装饰器会添加一个 init subclass 方法到它所应用的类 但是 当该方法动态添加到类中时 第一个参数不会绑定到子类对象 为什么会发生这种情况 举个例子 这是可行的 下面的静态代码是我试图最终得到的示例 cl
  • 在Python中计算内存碎片

    我有一个长时间运行的进程 不断分配和释放对象 尽管正在释放对象 但 RSS 内存使用量会随着时间的推移而增加 如何计算发生了多少碎片 一种可能性是计算 RSS sum of allocations 并将其作为指标 即便如此 我该如何计算分母
  • Pandas style.bar 颜色基于条件?

    如何渲染其中一列的 Pandas dfstyle bar color属性是根据某些条件计算的 Example df style bar subset before after color ff781c vmin 0 0 vmax 1 0 而
  • 在 Sphinx 中,有没有办法在声明参数的同时记录参数?

    我更喜欢在声明参数的同一行记录每个参数 根据需要 以便应用D R Y http en wikipedia org wiki Don t repeat yourself 如果我有这样的代码 def foo flab nickers a ser
  • 无法在 python 3.8 上将带有 webapp 的 python 部署到 azure

    我正在尝试使用部署一个测试项目Flask使用以下方法将框架迁移到 Azure 云中Azure CLI https learn microsoft com en us azure app service containers quicksta
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 对数据帧的每 2 小时数据进行 Groupby

    我有一个数据框 Time T201FN1ST2010 T201FN1VT2010 1791 2017 12 26 00 00 00 854 69 0 87 1792 2017 12 26 00 20 00 855 76 0 87 1793
  • 在 virtualenvwrapper 中激活环境

    我安装了virtualenv and virtualenvwrapper用这个命令我创建了一个环境 mkvirtualenv cv 它有效 创建后我就处于新环境中 现在我重新启动了我的电脑 我想activate又是那个环境 但是怎么样 我使
  • 为什么 smtplib.SMTP().sendmail 不发送 DKIM 签名邮件

    我已经在服务器上设置了 postfix 以及 openDKIM 当我跑步时 echo Testing setup mail s Postfix test my email address 我收到电子邮件 邮件标题中有一个DKIM Signa
  • Python:高精度time.sleep

    你能告诉我如何在 Win32 和 Linux 上的 Python 2 6 中获得高精度睡眠函数吗 您可以在中使用浮点数sleep http docs python org library time html time sleep 该参数可以
  • 如何在单元测试中使用 JSON 发送请求

    我的 Flask 应用程序中有在请求中使用 JSON 的代码 我可以像这样获取 JSON 对象 Request request get json 这一直工作得很好 但是我正在尝试使用 Python 的 unittest 模块创建单元测试 但
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可
  • python sklearn中的fit方法

    我问自己关于 sklearn 中拟合方法的各种问题 问题1 当我这样做时 from sklearn decomposition import TruncatedSVD model TruncatedSVD svd 1 model fit X

随机推荐

  • 如何在跨文件预处理时获取唯一值

    PROBLEM 我需要一种使用预处理器指令生成唯一值的方法 目的是每次调用宏时 它都会有一个唯一的integral标识符 但它应该在文件中保留其价值 有点像预处理器计数器 用于记录调用函数的次数 更多信息 我使用的宏是 define LOG
  • 使用通用可选参数的 Typescript 函数重载

    我正在尝试编写一个高阶函数来包装输入函数并缓存最近调用的结果作为副作用 基本功能 withCache 看起来像这样 function cache key string value any Some caching logic goes he
  • 为什么我无法使用索引器将项目添加到通用列表?

    这是我今天看到的一个奇怪的情况 我有一个通用列表 我想使用它的索引器将项目添加到我的列表中 如下所示 List
  • Docker PHP 7.1 imagick

    Docker php 7 1 imagick pecl install imagick docker php ext enable imagick 软件包 pecl php net imagick 没有可用的版本 安装失败 错误 服务 应用
  • 通过 .NET 确定每个查询的 DocumentDB 请求费用

    我试图弄清楚在通过提供的 NET 客户端库执行 DocumentDB 查询请求时是否可以获得 请求费用 详细信息返回到底层 HTTP 标头 x ms request charge 中 我可以通过 Fiddler 等进行监控 但如果我可以直接
  • Python:pip 尝试安装到 /bin 目录

    我安装了 pythonbrew install python which pip usr local bin pip my PYTHONPATH shows usr local lib python2 7 site packages 但是
  • Symfony2 自定义存储库类

    我是 symfony2 的新手 我正在尝试创建自定义存储库类 但无法做到 这是我正在做的事情 我向实体类 手机 添加了注释 ORM Entity repositoryClass Maak DefaultBundle Entity Mobil
  • iOS16 Bug 键盘在关闭 SwiftUI 时破坏布局

    在 iOS16 中 工作表内部存在键盘的错误 当工作表关闭时键盘消失 没关系 但布局未更新 我只看到了关于同一问题的 1 个问题 想知道也许有人找到了临时解决方法 直到苹果不解决这个问题 重现代码 struct Test View Stat
  • 如何检查域名是否存在?

    不仅是 com 或 net 等简单的域名 还有 co uk fr gov rw 我真的应该做一个巨大的映射 tld 到相关的 whois 服务器 还是有更简单的方法 http php net manual en function check
  • 尝试查看项目属性时 Visual Studio 2008 中出现“未指定错误”

    当我将活动解决方案从 Win32 设置为 x64 时 我无法构建项目或查看属性 当我尝试构建我的项目时 它被跳过 当我尝试查看属性时 第一次尝试时没有任何反应 第二次 我收到一条错误消息 操作无法完成 未指定的错误 我正在运行 Visual
  • Int16 - .net 中的字节容量?

    为什么 short a 0 Console Write Marshal SizeOf a shows 2 但如果我看到 IL 代码 我会看到 1 IL 0000 ldc i4 0 2 IL 0001 stloc 0 3 IL 0002 ld
  • strftime 或仅 PHP 是否弃用了“美国/东部”、“美国/中部”和“美国/太平洋”?

    我有一个 shell 脚本 准确地说是 zsh 它使用 strftime I M p Z a b d EPOCHSECONDS 生成 当前时间 例如 中部标准时间 02 45 PM 3 月 1 日星期四 这需要能够显示几个不同的美国时区的时
  • 如何在 gdb 启动时加载 .gdbinit?

    这是一个看似微不足道的问题 但我找不到一个简单的方法来完成这个任务 我有我的 gdbinit文件定义在与 gdb exe 所在目录相同的目录中 即在我的编译器的 bin 目录中 但是 当我运行 gdb 时 我得到以下信息 GNU gdb G
  • 从实体框架返回自定义对象 并分配给对象数据源

    我需要一些有关问题的指导 我正在使用 Entity Framework 4 0 我有 DAL 和 BLL 并且绑定到页面上的 ObjectDataSource 我必须使用编写一个存储过程PIVOT和动态 SQL 以我想要的方式从多个实体返回
  • NETWORK_PROVIDER 的 LocationListener 已启用,但从未调用 onLocationChanged

    我正在开发一个应用程序 可以在服务中全天 6 和 6 分钟内获取手机的位置 它工作正常 但有时该方法OnLocationChanged网络提供商侦听器的停止被调用 我不知道为什么 由于某种原因 它停止被调用 但当我手动启用或禁用提供程序时
  • 使用 stringstream 浮动的字符串

    我在网上找到了这段代码作为模板 用于进行字符串到 float int double 转换 它只是在这里 所以我有一些可以参考的问题 我想让用户输入一个数字作为字符串 将其转换为浮点数 测试它是否成功 如果输入是 Q 则退出 或者如果不是 Q
  • 创建扩展方法来生成打开和关闭标签,例如 Html.BeginForm()

    我想知道是否可以创建一个具有与 Html BeginForm 类似的功能和行为的扩展方法 因为它会生成一个完整的 Html 标记 并且我可以在其中指定其内容 tags 例如 我可以有这样的视图 此功能在我尝试使用示例中生成的功能的上下文中非
  • 使用动态键在 Typescript 中动态创建对象,无需将类型扩展为 { [key: string]: T }

    动态对象键 无需扩展至 key string V 我正在尝试创建一个 Typescript 函数来生成一个具有动态键的对象 其名称在函数签名中提供 而返回类型不会扩展为 key string V 所以我想打电话 createObject t
  • 检测文件是否在批处理文件中打开

    假设我有一个用于执行长时间构建的批处理文件 最后它会创建一个 EXE 如果我忘记在开始构建之前关闭应用程序 则链接阶段会在无法重新创建 EXE 时失败 我想检查 EXE 是否在以下位置打开start构建的 我尝试将 EXE 文件重命名为自身
  • Python 与 Ruby 相比的限制:lambda

    我浏览了 WikiVS 的一些页面 我引用了这些页面 因为 Python 中的 lambda 仅限于表达式 不能 包含语句 我想知道这个限制的一个很好的例子 或更多 最好与 Ruby 语言相比 感谢您的回答 评论和反馈 我不认为你真的在问