Страницы

Поиск по вопросам

пятница, 13 марта 2020 г.

Пожалуйста, помогите понять кусок кода

#python_3x


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 и как называется подобная конструкция?
    


Ответы

Ответ 1



Эта конструкция называется декоратором. Действует она следующим образом. Если @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

Комментариев нет:

Отправить комментарий