我尝试使用 discord.py 获取discord服务器的一个成员,使用guilide.members我在上面迭代,它返回成员的名字,但是我直接打印它,得到了如下的结果:
[<Member id=102833403109497170 name='Xiaoling' discriminator='147' bot=False nick=None guild=<Guild id=102393565654216714 name='DarkFuture' chunked=True member_count=22>>, <Member id=94117068084664839 name='Rishit' discriminator='0184' bot=False nick=None guild=<Guild id=1023935685654216714 name='DarkFuture' chunked=True member_count=22>>, <Member id=9417194317169792 name='麦わら帽子・Zoro' discriminator='905' bot=False nick=None guild=<Guild id=102393565654216714 name='DarkFuture' chunked=True member_count=22>>]
这是一个列表吗?我检查了它的类型,它说的是list,但是我看起来不像列表,如果我直接粘贴到代码编辑器中,有一个错误突出显示,如果我运行它,它给我一个语法错误,这是什么?Python是如何迭代它的?
我刚在Python中找到一个奇怪的列表,我不知道它是什么,我需要这些信息。
1条答案
按热度按时间wlwcrazw1#
看一下类Member
这里,Member类有自己的属性,如
id
、name
等。让我们创建此类的列表
当我们在这里打印
members
时,它将显示如下输出:代替
这是由于类中的
def __repr__(self)
函数,该函数用于创建自定义输出。我希望这将澄清关于输出中
<
标记打印的混乱。然后,类属性是不可迭代的,因此我们不能直接迭代它,或者不能作为列表访问属性(即不支持
member[key]
)。要解决此问题,可以使用
eval
方法,如下所示。eval
被 Package 在try and catch
中,因为extra
属性不必在所有类对象中都可用。我希望这将为迭代类对象以获取其他属性扫清道路。