【发布时间】:2019-11-07 18:04:54
【问题描述】:
我正在尝试将 V2 的 Slack API 封装到一个类中,以便我可以将有关我的机器人的信息封装起来。这是他们的示例 sn-ps 之一:
import slack
slack_token = os.environ["SLACK_API_TOKEN"]
rtmclient = slack.RTMClient(token=slack_token)
@slack.RTMClient.run_on(event='message')
def say_hello(**payload):
data = payload['data']
if 'Hello' in data['text']:
channel_id = data['channel']
thread_ts = data['ts']
user = data['user']
webclient = payload['web_client']
webclient.chat_postMessage(
channel=channel_id,
text="Hi <@{}>!".format(user),
thread_ts=thread_ts
)
rtmclient.start()
我在这里的理解是,这个 say_hello 函数由于装饰器而被传递到 slack 对象中,所以如果我将它包装到一个类中,那么该函数并没有真正坐在我的类中。如何包装 say_hello 函数以使其能够调用属于我的类实例的方法和引用属性?
【问题讨论】:
标签: python python-3.x class slack-api python-decorators