AttributeError: #39;BotClient#39; object has no attribute #39;loop#39; with declaring an instance(AttributeError:#39;BotClient#39;对象没有声明实例的属性#39;循环#39;)
本文介绍了AttributeError:';BotClient';对象没有声明实例的属性';循环';的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
尝试用Python编写不和谐的机器人,尽管有困难。当前收到错误";AttributeError:‘BotClient’对象没有属性‘loop’";。我在发帖前已经查过了,这似乎是因为我没有声明类的实例,但我是这样做的(参见最后两行代码)……除非有其他不正确的地方?
当前代码如下:
class BotClient(discord.Client):
def __init__(self, prefix, current_game):
self.pfx = prefix
self.curr_game = current_game
async def on_ready(self):
print(f'{self.user} has connected to Discord!')
await self.change_presence(status=discord.Status.idle, activity=self.curr_game)
#@self.event
async def on_message(self, message):
if message.author == self.user:
return
if message.content.startswith('%s hello' % self.pfx):
await message.channel.send('very naisu caesar-chan')
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
CHANNEL = os.getenv('CHANNEL_TOKEN')
CUR_GAME = os.getenv('GAME_ENV')
RockBot = BotClient(".rb", CUR_GAME)
RockBot.run(TOKEN)
推荐答案
您正在修改扩展到类discord.Client的__init__()函数。显然,您需要在类discord.Client内初始化__init()__,因为新的init函数覆盖了不一致的init函数(也称为超类init函数)。这应该是相当容易修复的。只需在新的init函数中对其进行初始化即可:
class BotClient(discord.Client):
def __init__(self, prefix, current_game, *args, **kwargs):
self.pfx = prefix
self.curr_game = current_game
super().__init__(*args, **kwargs)
async def on_ready(self):
print(f'{self.user} has connected to Discord!')
await self.change_presence(status=discord.Status.idle, activity=self.curr_game)
#@self.event
async def on_message(self, message):
if message.author == self.user:
return
if message.content.startswith('%s hello' % self.pfx):
await message.channel.send('very naisu caesar-chan')
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
CHANNEL = os.getenv('CHANNEL_TOKEN')
CUR_GAME = os.getenv('GAME_ENV')
RockBot = BotClient(".rb", CUR_GAME)
RockBot.run(TOKEN)
这篇关于AttributeError:';BotClient';对象没有声明实例的属性';循环';的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:AttributeError:';BotClient';对象没有声明实例的属性';循环';
基础教程推荐
猜你喜欢
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
