discord.py TypeError: find() got an unexpected keyword argument 'name'

discord.py TypeError: find() got an unexpected keyword argument 'name'

我正在使用 discord.py 库在 python 3.9 中编写一个机器人,目前我正在尝试获取名为“Knight”的角色。获取角色的代码行引发类型错误:discord.py TypeError: find() got an unexpected keyword argument 'name'。造成这种情况的代码是 knightRole = discord.utils.find(ctx.guild.roles, name = "Knight")。如果角色不存在(if knightRole returns None),下面的代码创建角色。

这是我的代码,后面是回溯:

discord.utils.find 函数接受一个谓词函数(因此是一个 returns TrueFalse 的函数或 lambda)和一个序列,如下所示:

knightRole = discord.utils.find(lambda r: r.name == 'Knight', ctx.guild.roles)

您也可以使用类似的 discord.utils.get,它确实具有您显然期望的界面:

knightRole = discord.utils.get(ctx.guild.roles, name='Knight')

Reference