我真的不知道如何在标题中解释,但基本上我有3@client.Event,而且总是第二个(中间的那个)从来不起作用. 以下是我的代码:

import discord
from discord.ext import commands
import os
import random
from random import choice


intents = discord.Intents.default()
intents.message_content = True

client = discord.Client(intents=intents)

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_message(message):
    if client.user.mentioned_in(message):
        await message.channel.send("hi!")

@client.event
async def on_message(message):
    if message.author == client.user:
        return
    if message.content.startswith('$ask'):
           possible_responses = [
               'It is certain.',
               'It is decidedly so.',
               'Without a doubt.',
               'Yes - definitely.',
               'You may rely on it.',
               'As I see it, yes.',
               'Most likely.',
               'Outlook good.',
               'Yes.',
               'Signs point to yes.',
               'Reply hazy, try again.',
               'Ask again later.',
               'Better not tell you now.',
               'Cannot predict now.',
               'Concentrate and ask again.',
               'Don\'t count on it.',
               'My reply is no.',
               'My sources say no.',
               'Outlook not so good.',
               'Very doubtful.',
           ]
           await message.channel.send(random.choice(possible_responses))

然后我还有一个client.run(令牌). 一般情况下,我对discord.py和python也是新手.希望我说的话有道理.

我try 了上面的代码.我原以为中级指挥部会像其他指挥部一样工作.

编辑:而且它也不会给出任何错误.

推荐答案

你写道

... def ...

@client.event
async def on_message(message):
    ...

@client.event
async def on_message(message):
    ...

也就是说,您对同一函数执行了两次def. 因此,最后一个版本覆盖了先前的版本. 中间的那个已经不复存在了.

或者将两者的逻辑结合到单个功能中, 或者 Select 一个不同的函数名称.


有一个实现模块命名空间的dict. 它现在有一个"on_message"条目.

任何@个装饰师的出现都不会改变它的名字--它是 仍然是"on_message"岁. 装饰符do影响所生成的字节码.


让我们声明一个新变量:

x = 42
x = 43

而且它也不会给出任何错误.

没错. 这是一种覆盖旧值的功能 (将新值绑定到现有名称) 将默默地成功,不会引发任何错误.

类似地,当我们对一个函数进行def次运算,然后再对其进行def次运算时 使用一些新的和改进的功能代码版本.

如果需要警告,请运行源代码链接器,如 "$ruff*.py"

Python相关问答推荐

我如何沿着我的图表绘制一条线来显示哪里的数据密度最高?

POLARS:从GROUP_BY列表中 Select 值,并从另一列中 Select 值

如何将按钮移动到按钮在GRadio中使用或更改的框之前?

在Pandas中,如何将按列的DataFram合并为按行的DataFrame?

大Pandas 成群结队,从Extrall捕获群

基于列名复制数据帧中的列

从没有for循环的1D数组元素创建扩展的1D数组

如何使用pygame.ill设置带有Alpha值的像素,而不是在pyGame中混合它们

Unound LocalError:无法访问未与值关联的本地变量FileName

循环不工作或比原始定义慢的多线程/处理

如何根据从小到大的顺序将一系列整数重新映射到0、1、2、3、4?

迭代后创建多个分配给多个数据透视表的数据透视表

按绝对发生次数对对象进行排序

有没有办法只将两个NumPy数组的特定元素相加在一起?

极点:在同一分组上执行多个操作

如何根据列值为雷达图中的外环(如甜甜圈图)上色

具有不同值类型的键入提示嵌套词典

使用PipeLine的SHAP KernelExplainer

如何从存在重复的现有列中为Pandas DataFrame设置新的索引?

数据基数在输入到LSTM层的形状上是模糊的