如何对许多角色使用discord.py remove_roles? (对象列表为args)

时间:2018-10-19 11:09:41

标签: python bots discord discord.py

我试图用一个命令删除所有角色。  -声明为空列表。
 -创建实际角色列表
 -获取对象角色并将其添加到列表中。  -调用带有对象角色列表的remove_roles。

x = []  
serverroles = ['blabla','piupiu','etc']  
for role in serverroles:  
    x.append(discord.utils.get(ctx.message.server.roles, name=role))
await client.remove_roles(ctx.message.author, x)  

遇到错误:AttributeError: 'list' object has no attribute 'id'
我在做什么错了?

1 个答案:

答案 0 :(得分:2)

如果您查看remove_roles文档,则会发现其功能签名为:

remove_roles(member, *roles)

*roles的意思是“零个或多个参数,它们被放入称为tuple的{​​{1}}中”。您可以单独提供这些:

roles

或通过拆箱。就您而言,这看起来像

await client.remove_roles(member, role1, role2, role3)