簡體   English   中英

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

[英](PYTHON DISCORD BOT) What does @[].event and @[].command() do?

我正在編寫一個簡單的不和諧機器人,我是新手。 我在定義這樣的函數之前使用 @.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() 用於創建命令,讓 discord 中的用戶可以輸入並執行您的代碼。 因此,當用戶執行您定義的前綴和之后的關鍵字時,@.command 將使您的代碼執行您的函數。 在 () 中,您可以傳入諸如 ctx 之類的內容,這些內容可以在您的函數中使用,請閱讀相關文檔。

一旦您了解它們,它們就非常容易使用,並且可以在您的程序中大量使用。 我認為沒有裝飾器就無法創建命令或事件。 請記住,如果您正在創建命令,請在其上方添加 @.command。 如果是 on_message 之類的事件,則添加 @.event

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM