如何将 discord.py remove_roles 用于多个角色? (作为参数的对象列表)
Posted
技术标签:
【中文标题】如何将 discord.py remove_roles 用于多个角色? (作为参数的对象列表)【英文标题】:How to use discord.py remove_roles for many roles? (list of objects as an args) 【发布时间】:2019-03-24 06:40:40 【问题描述】:我正在尝试使用一个命令删除所有角色。 - 声明空列表。 - 创建实际角色列表 - 获取对象角色并将其添加到列表中。 - 使用对象角色列表调用 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】:如果您查看remove_roles
文档,您会看到它的函数签名是:
remove_roles(member, *roles)
*roles
表示“零个或多个参数,它们被放入名为 roles
的 tuple
中”。您可以单独提供这些:
await client.remove_roles(member, role1, role2, role3)
或通过拆包。在你的情况下,这看起来像
await client.remove_roles(ctx.message.author, *x)
【讨论】:
这行得通!感谢您支持像我这样的新手 :D 现在我知道拆包了。以上是关于如何将 discord.py remove_roles 用于多个角色? (作为参数的对象列表)的主要内容,如果未能解决你的问题,请参考以下文章
我如何将成员的图像和昵称放在嵌入中? (w/discord.py)