python - 重新定义未使用的“on_message”是什么意思
问题描述
我在 Discord 上制作的这个机器人只是一个刽子手游戏。我已经能够完成机器人的最基本部分,现在正在尝试添加第二个命令。但是第 24 行出现错误,弹出“从第 13 行重新定义未使用的'on_message'”。
一旦有人发送“$start”,第二个命令应该打印一些东西。但是,当我这样做时它不起作用。
这是我当前的代码:
import discord
import random
import os
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'
.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith("$help"):
await message.channel.send("To start your game, type '$start'")
client.run(os.getenv("TOKEN"))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith("$start"):
await message.channel.send("You will have to guess a month. Have fun :) (The first letter will be always capital)")
这就是问题所在:
@client.event
async def on_message(message): #this is line 24
if message.author == client.user:
return
if message.content.startswith("$start"):
await message.channel.send("You will have to guess a month. Have fun :) (The first letter will be always capital)")
解决方案
问题:
您已经重新定义了on_message
函数。这意味着,有 2 个具有相同名称的函数on_message
。
解决方案:由于您一直在使用一些if
语句来决定在哪个命令上执行哪个函数,您可以将所有if
语句分组为一个函数,因此您的代码如下所示:
import discord
import random
import os
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith("$help"):
await message.channel.send("To start your game, type '$start'")
if message.content.startswith("$start"):
await message.channel.send("You will have to guess a month. Have fun :) (The first letter will be always capital)")
client.run(os.getenv("TOKEN"))
推荐阅读
- asp.net-core - 在没有 IIS 的情况下在 Windows 上托管时的 WebHost.CreateDefaultBuilder
- python - 在 numba cuda 中删除数组的零值
- javascript - 如何编写一个函数来从链接自动下载 pdf 文件,而无需在 java 脚本或 html 中导航到另一个网页
- terminal - UiPath 终端连接 - 内部与 EHLLAPI?
- python - Python:在矩阵中查找 Levenshtein 编辑距离的有效方法
- android - 如何将Android中的蓝牙低功耗范围更改为编程?
- vim - 如何通过 MIME 扩展获得 VIM 编辑器颜色编码?
- android - 将现有项目迁移到 Android Studio 3.3 失败
- matlab - 如何在matlab中读取.yml文件
- odoo - 元素 '
' 不能位于父视图中