Python装饰器和Lisp宏
在查看Python装饰器时,有人声明,它们与Lisp宏(尤其是Clojure)一样强大。 看一下PEP 318中给出的示例,在我看来,它们只是在Lisp中使用普通的旧高阶函数的一种奇特方式: def attrs(**kwds): def decorate(f): for k in kwds: setattr(f, k, kwds[k]) return f return decorate @attrs(versionadded="2.2", author="Guido van Rossum") def mymethod(f): ... 在任何示例中都没有看到任何代码转换,如Clojure Macro的解剖中所述。另外,Python缺少同源性 可能使代码转换变得不可能。 那么,这两个如何比较,您能说他们在做事上大致相等吗?证据似乎与此相反。 编辑:根据评论,我正在寻找两件事:比较“功能强大”和“易于处理”。