这段代码有什么问题?(Python) AttributeError: 'Client' object has no attribute 'command'

问题描述

我是 Python 新手,我正在开发一个不和谐的机器人。但是我每次都运行这个错误。我不知道是什么问题,你能帮我吗?这是错误: 第 19 行,在 @client.command() AttributeError: 'Client' 对象没有属性 'command'

代码如下:

import discord
import random
from discord.ext import commands




class MyClient(discord.Client):
    client = commands.Bot(command_prefix = '?')


# Start

async def on_ready(self):
    print('Logged on as',self.user)

# Latency
client = discord.Client()
@client.command()
async def ping(ctx):
    await ctx.send(f'Pong! {round(client.latency * 1000)}ms')


# 8ball

@client.command(aliases=['8ball'])
async def _8ball(ctx,*,question):
    responses = ['Biztosan.','Nagyon kétséges.']
    await ctx.send(f'Kérdés: {question}\nVálasz: {random.choice(responses)}')

# Clear

@client.command()
async def clear(ctx,amount=5):
    await ctx.channel.purge(limit=amount)
    await ctx.send(f'Kész!')

async def on_message(self,message):
        word_list = ['fasz','kurva','anyad','anyád','f a s z','seggfej','buzi','f.a.s.z','fa sz','k U.rv@ any@dat']

       
        if message.author == self.user:
            return

        messageContent = message.content
        if len(messageContent) > 0:
            for word in word_list:
                if word in messageContent:
                    await message.delete()
                    await message.channel.send('Ne használd ezt a szót!')
            
        messageattachments = message.attachments
        if len(messageattachments) > 0:
            for attachment in messageattachments:
                if attachment.filename.endswith(".dll"):
                    await message.delete()
                    await message.channel.send("Ne küldj DLL fájlokat!")
                elif attachment.filename.endswith('.exe'):
                    await message.delete()
                    await message.channel.send("Ne csak parancsikont küldj!")
                else:
                    break

client = MyClient()
client.run(token)

解决方法

我很确定这是由于您定义客户端变量的位置,当我制作我的不和谐机器人时,我是在 javascript 中完成的,所以我可能是错的,但我相信这是因为您试图调用一个变量尚未定义,因此将 client = MyClient() 行向上移动,以便在创建类后立即定义