【问题标题】:What is the correct operation for returning an iterable of server roles?返回可迭代的服务器角色的正确操作是什么?
【发布时间】:2017-09-08 15:07:14
【问题描述】:

我正在尝试迭代 discord.Server.roles 的输出,以便在我连接的服务器上输出每个角色。

文档为声明声明了这一点:

角色

服务器可用的Role 列表。

但是,结果输出似乎是一个名为 member_descriptorclass,它是不可迭代的。

请参阅下面的示例:

import discord
import asyncio

client = discord.Client()

@client.event
async def on_ready():
    print(type(discord.Server.roles))
    try:
        for i in discord.Server.roles:
            print(i)
    except:
        print("Object is not iterable")

client.run(MY_SESSION_KEY)

是否有人知道是否可以返回服务器具有的角色列表,因为此声明不是返回列表而是返回类?

【问题讨论】:

  • 你还没有告诉你的带有服务器的程序显示来自的角色,discord.Server 只是一个描述符类,你需要使用一个实际的服务器。

标签: python-3.x discord.py


【解决方案1】:

您需要一个已实现的服务器对象,而不仅仅是类定义。

基本上,您应该使用client.get_server("ID of server"),而不是使用discord.Server

def on_ready():
    server = client.get_server("id")
    for r in server.roles:
        print(r.name)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-23
    • 2016-09-23
    • 1970-01-01
    • 2018-03-21
    • 2012-02-04
    • 2019-02-11
    • 2021-03-21
    • 1970-01-01
    相关资源
    最近更新 更多