有没有办法将 python 中的 2 个装饰器与 or 条件结合起来?

Is there a way to combine 2 decorators in python with or condition?

我正在使用 RTMclient 获取松弛消息数据。这里消息的类型是 'message' ,它只给我们父线程的数据。但我想要回复的消息数据。 在研究中我发现它是 'message_replied' 类型。我想在装饰器中包含消息或 message_replied。

Pfb 示例代码。

@slack.RTMClient.run_on(event='message')
def respond(**payload):
    data = payload['data']
    web_client = payload['web_client']
    rtm_client = payload['rtm_client']
    user_id = data.get("user")

text = data.get("text")

这里我也想使用 @slack.RTMClient.run_on(event='message_replied') 但条件是 'or'

查看 slack.RTMClient.run_on() 的源代码,您应该能够 "stack" 像这样的装饰器:

@slack.RTMClient.run_on(event='message')
@slack.RTMClient.run_on(event='message_replied')
def respond(**payload):
    data = payload['data']
    web_client = payload['web_client']
    rtm_client = payload['rtm_client']
    user_id = data.get("user")

你试过吗?