如何解决set_adminrole接受1个位置参数,但给出了2个
所以我试图在我的机器人中创建一个设置命令,用户可以在其中选择他想要的东西。问题是我无法按自己的意愿运行它。
我以此为密码
# Function to write changes to file
def set_adminrole(guild: Guild,*,role: Role):
with open("admins.json") as f:
roles = json.load(f)
roles[str(guild.id)] = role.id
with open("admins.json",'w') as f:
json.dump(roles,f,indent=4)
# Actual command
-- Not important code --
await ctx.send(f"Now,mention the role you want it to be the admin role")
role: Message = await bot.wait_for("message",check=check)
set_adminrole(ctx.message.guild,role.content)
await ctx.send(f"Admin role changed to {Role(role.content).mention}... Let's keep going")
当我提到一个角色并尝试用它调用函数时,它给了我这个错误:
TypeError: set_adminrole() takes 1 positional argument but 2 were given
预先感谢
解决方法
role
是仅关键字的参数,因为它紧跟参数列表中的*
。您需要将该值作为关键字参数而不是位置参数进行传递。
set_adminrole(ctx.message.guild,role=role.content)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。