返回可迭代的服务器角色的正确操作是什么?
What is the correct operation for returning an iterable of server roles?
我正在尝试迭代 discord.Server.roles
的输出,以便在我连接的服务器上输出每个角色。
文档声明了这一点:
roles
A list of Role
that the server has available.
然而,结果输出似乎是一个名为 member_descriptor
的 class
,它是不可迭代的。
请参阅下面的示例:
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)
是否有人知道是否可以 return 服务器具有的角色列表,因为此声明不是 return 列表而是 class?
您需要一个已实现的服务器对象,而不仅仅是 class 定义。
基本上,您应该使用 client.get_server("ID of server")
而不是 discord.Server
def on_ready():
server = client.get_server("id")
for r in server.roles:
print(r.name)
我正在尝试迭代 discord.Server.roles
的输出,以便在我连接的服务器上输出每个角色。
文档声明了这一点:
roles
A list of
Role
that the server has available.
然而,结果输出似乎是一个名为 member_descriptor
的 class
,它是不可迭代的。
请参阅下面的示例:
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)
是否有人知道是否可以 return 服务器具有的角色列表,因为此声明不是 return 列表而是 class?
您需要一个已实现的服务器对象,而不仅仅是 class 定义。
基本上,您应该使用 client.get_server("ID of server")
discord.Server
def on_ready():
server = client.get_server("id")
for r in server.roles:
print(r.name)