python - (PYTHON DISCORD BOT) @[].event 和 @[].command() 做什么?
问题描述
我正在编写一个简单的不和谐机器人,我是新手。在定义这样的函数之前,我使用了@.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")
我想知道他们是做什么的。有没有办法在不使用它们的情况下使用这些代码?
解决方案
这些是 discord py 的装饰器,用于为后面的函数声明一些信息。
当您希望机器人在事件发生时执行某些操作时,使用 @.event。例如 on_typing 事件、on_message 事件或 on_member_join 事件。当这些事件发生时,你的机器人会做你写过的事情。您的 on_ready 事件是您的机器人等待的事件,并将执行您之后编写的操作。
@.command() 用于创建不和谐用户可以输入并执行代码的命令。因此,当用户执行您定义的前缀和之后的关键字时,@.command 将使您的代码执行您的功能。在 () 中,您可以传入诸如 ctx 之类的内容,这些内容可以在您的函数中使用,请阅读相关文档。
一旦您开始了解它们,它们就非常易于使用,并且可以在您的程序中大量使用。我认为没有装饰器就无法创建命令或事件。请记住,如果您正在发出命令,请在其上方添加 @.command。如果是 on_message 之类的事件,请添加 @.event
推荐阅读
- android - Flutter - 在启动时启动前台服务
- google-chrome-extension - 图片未显示在 chrome 扩展中
- reactjs - 为什么要使用 Webpack?有什么优势吗?
- c++ - C、C++ 中 24 小时内的 ON 和 OFF 时间控制
- azure - 对于以下查询,接收文字不完整
- c# - Python 作为 C# 的构建后步骤
- git - 如何在 git 存储库中找到最旧的提交?
- installation - 使用 kmod-ciss 驱动程序创建 repo 期间 CENTOS 7.9 安装错误
- javascript - 如何使这些功能更短
- java - 使用 jib 部署命令行界面应用程序