4

我正在尝试使用一个命令删除所有角色。- 声明空列表。
- 创建实际角色列表
- 获取对象角色并将其添加到列表中。- 使用对象角色列表调用 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'
我做错了什么?

4

1 回答 1

2

如果您查看remove_roles文档,您会看到它的函数签名是:

remove_roles(member, *roles)

*roles意思是“零个或多个参数,它们被放入被tuple调用的roles”。您可以单独提供这些:

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

或通过拆包。在你的情况下,这看起来像

await client.remove_roles(ctx.message.author, *x) 
于 2018-10-19T13:17:45.633 回答