有没有一种方法可以将python中的2个装饰器与or条件组合在一起?

时间:2019-10-29 02:42:48

标签: python slack-api python-decorators

我正在使用RTMclient来获取松弛消息数据。在这里,消息的类型是“消息”,它仅向我们提供父线程的数据。但是我想要回复的消息数据。 在研究中,我发现它是“ message_replied”类型。我想在装饰器中包含message或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'),但条件是'或'

1 个答案:

答案 0 :(得分:2)

查看slack.RTMClient.run_on()的源代码,您应该可以像这样“堆叠”装饰器:

@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")

您尝试过吗?