(PYTHON DISCORD BOT)@[].event 和@[].command() 有什么作用?

时间:2021-06-19 15:58:28

标签: python discord bots

我正在编写一个简单的不和谐机器人,而且我是新手。我在定义这样的函数之前使用 @.event 或 @.command() 因为我在视频中看到它们:

import discord
from discord.ext import commands

bot = commands.Bot(command_prefix="!", description="I'M HERE TO SERVE YOU.",)

@bot.event
async def on_ready():
   print(f"BOT {bot.user.name} IS READY TO MISSION.")

@client.command() 
async def ping(ctx):
   await ctx.send(f"PONG! {round(client.latency * 1000)}ms")

我想知道他们是做什么的。有没有办法在不使用这些代码的情况下使用它们?

1 个答案:

答案 0 :(得分:0)

那些是 discord py 的装饰器,用于声明后面函数的一些信息。

@.event 用于当您希望您的机器人在事件发生时做某事。例如 on_typing 事件、on_message 事件或 on_member_join 事件。当这些事件中的一个发生时,你的机器人会做你写的任何事情。您的 on_ready 事件是您的机器人等待并执行您之后编写的操作的事件。

@.command() 用于创建不和谐用户可以输入并执行您的代码的命令。因此,当用户执行您定义的前缀和之后的关键字时,@.command 将使您的代码执行您的函数。在 () 中,您可以传入 ctx 之类的内容,这些内容可以在您的函数中使用,请阅读相关文档。

一旦您了解它们,它们就非常容易使用,并且可以在您的程序中大量使用。我认为没有装饰器就无法创建命令或事件。请记住,如果您正在创建命令,请在其上方添加 @.command。如果是 on_message 之类的事件,添加@.event