这是我的代码:
@bot.command()
async def online(ctx):
"""Fetch all members and add to list based on status"""
onlinemembers, offlinemembers = [], []
# Loop over individual member in guild.members list
for m in ctx.guild.members:
# Add to list of online members if status is online or dnd, else add to offline list
onlinemembers.append(str(m)) if str(m.status) in ['online', 'dnd'] else offlinemembers.append(str(m))
await ctx.send(f"Online members: {', '.join(onlinemembers)}\nOffline members: {', '.join(offlinemembers)}")
它的工作原理与预期一样。 在使用三元表达式之前,我做了如下操作:
...
if str(member.status) in ['online', 'dnd']:
onlinemembers.append(str(member))
else:
offlinemembers.append(str(member))
...
这也很好,但我想写得更短
最上面的代码在linter中给了我这个错误:
Expression "onlinemembers.append(str(m)) if str(m.status) in ['online', 'dnd'] else offlinemembers.append(str(m))" is assigned to nothing
我怎么能做这样的事情而不出现这样的错误呢
目前没有回答
相关问题 更多 >
编程相关推荐