import discord
client = discord.Client()
client.login('email', 'password')
@client.event
def on_message(message):
if message.content.startswith('!hello'):
client.send_message(message.channel, 'Hello was received!')
@client.event
def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
client.run()
Как работают @client.event и как называется подобная конструкция?
Ответ
Эта конструкция называется декоратором
Действует она следующим образом. Если @decorator - некоторый декоратор, то следующая конструкция
@decorator
def f(args):
# . . .
будет преобразована в такую:
def f(args):
# . . .
f = decorator(f)
То есть, в данном случае декоратор - некоторая функция, преобразующая свой аргумент.
P.S. Декораторы в Python - довольно обширная тема. Если хотите разобраться в ней поподробнее, почитайте 38-ю главу книги
Лутц М.
Изучаем Python, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2011. – 1280 с., ил.
ISBN 978-5-93286-159-2
Комментариев нет:
Отправить комментарий