我不断收到 AttributeError: 'Bot' object has no

我正在尝试在多服务器机器人上制作全球 XP 排行榜。


如果我有的话,entry[0]我会把他们的 ID 发布到嵌入中。


请帮助 tyty 高级 <3


class Menu(ListPageSource):

    def __init__(self, ctx, data):

        self.ctx = ctx


        super().__init__(data, per_page=10)


    async def write_page(self, menu, offset, fields=[]):

        offset = (menu.current_page*self.per_page) + 1

        len_data = len(self.entries)


        embed = Embed(title="XP Leaderboard", description="See who is on top!", colour=self.ctx.author.colour)

        embed.set_thumbnail(url=self.ctx.guild.me.avatar_url)

        embed.set_footer(text=f"{offset:,} - {min(len_data, offset+self.per_page-1):,} of {len_data:,} members.")

        

        for name, value in fields:

            embed.add_field(name=name, value=value, inline=False)


        return embed


    async def format_page(self, menu, entries):

        offset = (menu.current_page*self.per_page) + 1

        fields = []

        table = ("\n".join(f"{idx+offset}. {self.ctx.bot.fetch_member(entry[0]).display_name} (XP: {entry[1]} | Level {entry[2]})" 

                for idx, entry in enumerate(entries)))


        fields.append(("Ranks", table))


        return await self.write_page(menu, offset, fields)

更新:更新了我的表字符串,现在出现此错误,仍然不知道如何修复任何内容。


        table = ("\n" +  f"{idx+offset}. {await self.ctx.bot.fetch_user(entry[0]).display_name} (XP: {entry[1]} | Level {entry[2]}" 

                 for idx, entry in enumerate(entries))```

```py

<async_generator object Menu.format_page.<locals>.<genexpr> at 0x04A49A90>

(^ 发送嵌入内容)


弑天下
浏览 147回答 3
3回答

湖上湖

你所做的是一个发电机。你想要一个列表理解:table = [x.do_stuff() for x in some_iterable]这是一个生成器:a = (x.do_stuff() for x in some_iterable)

FFIVE

fetch_member是一种Guild对象方法,您可以使用bot.get_guild检索它

慕标琳琳

通过传入我的导入所在的“from lib.bot import bot”来修复它,然后拥有这个&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table&nbsp;=&nbsp;("\n".join(f"{idx+offset}.&nbsp;{bot.get_user(entry[0]).name}&nbsp;(XP:&nbsp;{entry[1]}&nbsp;|&nbsp;Level:&nbsp;{entry[2]})" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;idx,&nbsp;entry&nbsp;in&nbsp;enumerate(entries)))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python