属性错误:“客户端”对象没有属性“命令”

时间:2020-07-05 10:58:55

标签: python pycharm attributeerror discord.py-rewrite

int n;
cout << "Introduceti n: ";
cin >> n;
int** a = new int*[n];
for (int i = 0; i < n; i++) {
    a[i] = new int[i+1];
}

for (int i = 0; i < n; i++) {
    for (int j = 0; j < i+1; j++) {
        *(*(a + i) + j) = (i * i + i) / 2 + j +1;
    }
}


for (int i = 0; i < n; i++) {
    for (int j = 0; j < i+1; j++) {
        cout << *(*(a + i) + j) << "|";
    }
    cout << endl;
}

我是Python的新手,目前正在学习如何使用discord.py rewrite编写Discord机器人。我从一位名叫Lucas的YouTuber那里遵循了此代码。这是他的确切代码。他的代码似乎有效,但是由于某种原因,我的PyCharm仍然说客户端没有属性命令。有人可以教我如何解决它吗?

这是错误

from discord.ext import commands

client = commands.Bot(command_prefix='{')

@client.command()
async def ping(ctx):
    await ctx.send("Pong!")

1 个答案:

答案 0 :(得分:0)

据我所知,如果您希望继续使用discord.py的client部分,则应尝试其中的on_message部分,例如:

async def on_message(message):
    if message.content.startswith('{ping'):
        await message.channel.send('pong')

但是,如果您想要一个更轻松的替代方法,(至少对我来说更有意义),您可以尝试@bot.command示例:

import discord
from discord.ext import commands
TOKEN = ''
bot = commands.Bot(command_prefix='{')

@bot.command()
async def ping(ctx):
    await ctx.send('pong')

@bot.command的一大优点是输入更容易。

如果您想获得用户在执行命令后说的话,那么您可以做。

@bot.command()
async def ping(ctx, *, variableName):
    await ctx.send(f'You said {variableName}')

如果您想要一条错误消息,如果它们弄乱了,您可以这样做

@bot.command()
async def ping(ctx, *, variableName):
    await ctx.send(f'You said {variableName}')
@ping.error
async def ping_error(ctx, error):
    ctx.send("Please enter something after the command")

根据我的经验,如果您正在使用@bot.command,就可以像大多数其他人一样轻松地找到有关stackoverflow的帮助。但是,回到您想使用@client.command的情况我还是不知道。但是,如果您想切换到@bot.command,那么我敢肯定,您可以在google或stackoverflow上查找您想做的事,直到找到@bot.command的内容为止,这么长。