首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hy内置装潢器抛出NameError:未定义名称'with_decorator‘

hy内置装潢器抛出NameError:未定义名称'with_decorator‘
EN

Stack Overflow用户
提问于 2022-05-18 08:37:39
回答 2查看 53关注 0票数 1

我试图运行hy手册(https://docs.hylang.org/en/stable/language/api.html?highlight=with-decorator#with-decorator)中的“去皮质激素”示例:

代码语言:javascript
复制
 (defn inc-decorator [func]
 (fn [value-1 value-2] (func (+ value-1 1) (+ value-2 1))))

 (with-decorator inc-decorator (defn addition [a b] (+ a b)))
 (setv foo (addition 1 1))
 (print foo)

但我有个例外:

代码语言:javascript
复制
line 4, in <module>
(with-decorator inc-decorator (defn addition [a b] (+ a b)))
NameError: name 'with_decorator' is not defined

带有下划线的with_decorator。我在尝试最新的稳定版本的hy。同样的情况也发生在任何带有-装饰符的代码中。

EN

回答 2

Stack Overflow用户

发布于 2022-05-18 12:10:09

,我正在尝试使用最新的稳定版本的hy。

with-decorator最近在master中被移除,而它在0.20.0中仍然存在,所以我认为您弄错了。检查hy --version

票数 0
EN

Stack Overflow用户

发布于 2022-05-18 20:23:32

我找到文件了。

代码语言:javascript
复制
(with-decorator (app.route "/") (defn index [] "Hello World !"))

在早期版本中起作用的操作现在如下所示:

代码语言:javascript
复制
(defn [(.route app "/")] index [] "Hello World !")

代码语言:javascript
复制
(with-decorator (inc-decorator (defn addition [a b] (+ a b)))

是现在

代码语言:javascript
复制
(defn [inc-decorator] addition [a b] (+ a b))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72285808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档