Python 变量给我用户名,然后更改为所有信息

Python variable gives me the name of the user then changes to all its info

我正在 Python 中编写一个 Discord 机器人,我正试图通过他的 ID 获取用户名。这就是我所拥有的:

ok = ctx.message.guild.get_member(313628621841498114) 
print(ok) #prints Thomsd#4688

这确实是我想要得到的。但是,当我这样做时

dict_temp = {"membres":ok}
print(dict_temp)

我得到:

{'membres': <Member id=313628621841498114 name='Thomsd' discriminator='4688' bot=False nick=None guild=<Guild id=968274297200197692 name='LE machin de la RATP' shard_id=None chunked=True member_count=9>>}

它出现有什么原因吗?有谁知道我如何修复它以将第一个结果添加到字典中?谢谢

print() 函数调用 str(pl) 获取要打印的字符串。 discord.Member class 有一个 __str__() 方法 returns name#discriminator,所以这就是打印的内容。

打印字典时,它会调用 str(dict_temp)。字典的 __str()__ 方法对字典中的值调用 repr()。 class 的默认 __repr__() 方法是 return 显示的字符串,class 名称后跟所有属性。 discord.Member() 没有将其覆盖为 return 更简洁的内容。

list.__repr__() 类似。如果你这样做,你会看到同样的东西 print([ok])