gpt4 book ai didi

python - Lua 支持装饰器吗?

转载 作者:太空狗 更新时间:2023-10-29 20:57:09 25 4
gpt4 key购买 nike

我有 Python 背景,非常喜欢 Python 装饰器的强大功能。

Lua 支持装饰器吗?

我已阅读以下链接,但我不清楚:http://lua-users.org/wiki/DecoratorsAndDocstrings

更新

如果可能的话,您是否也介意给出一个如何在 Lua 中实现它的示例。

最佳答案

在您引用的页面中记录的“装饰器”(例如在 this one 中用于添加类型检查)与 Python 的奇怪命名的“装饰器语法”几乎没有关系,用于应用更高的特定方式order function (HOF)——相反,Lua 的 wiki 中描述和使用的装饰器是支持 Decorator Design Pattern 应用程序的 Lua 习惯用法。到 Lua 函数(通过在单独的全局表中保存“额外属性”——例如文档字符串、类型检查函数等)。

Lua 确实支持 HOF(我不确定您是否可以将函数名称重新绑定(bind)到将 HOF 应用于函数的结果,但是您可以轻松地,如 wiki 页面所示,使用一个匿名的“原始函数”,并且只将一个名称绑定(bind)到 HOF 的结果,并将该匿名函数作为 arg)。

Python 的“装饰器语法”语法糖很好(而且,令我惊讶的是,大多数 Pythonista 对 HOF 的使用似乎增加了一个数量级!-),但它们没有任何内在或必要的东西可供您使用在 Lua 中不这样做(而且 Lua 的匿名函数绕着 Python 的愚蠢的、有限的 lambda 运行——就像在 Javascript 中一样,它们具有本质上相同的功能和几乎相同的语法,作为一个“正常”命名函数!-)。

关于python - Lua 支持装饰器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3640536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com