首页 > 解决方案 > 是否可以在 Python 中匿名定义装饰器(使用 lambda 表达式)?

问题描述

首先,我想向您解释一下,我测试我的“如果定义为” lambda,则具有函数的所有属性lambda<class 'function'>。这就是我问这个问题的原因。我想匿名定义一个装饰器(带lambda表达式)。定义nested lambda是我发现的第一个想法。是否nested lambda有效,或者您还有其他建议吗?

标签: python-3.xlambdanestedanonymous-functionpython-decorators

解决方案


问题不在于它是否可以做到,(它可以)问题是你为什么要这样做?

这是一个lambda作为简单装饰器的示例,使用 atuple作为 hack 在一行中获取 2 个语句。

foo = lambda func: lambda: (print('Hello'), func())

@foo
def bar():
    print('World')

bar()

推荐阅读