こんにちは私は不和なボットを書いていて、コマンド!members in on_message eventでサーバーからすべてのメンバーをプルしようとしたときにこのエラーに遭遇しました:
Elif message.content.startswith('!members'):
x = server.Server.members
for member in x:
print(member)
このコマンドですべてのメンバーをプルしてコンソールに出力したいのですが、TypeError: 'property'オブジェクトは反復可能ではありません
不協和音チャネルにコマンドを入力すると、誰かがチャンネルのすべてのメンバーのリストを作成するのを手伝ってくれませんか?
サーバーからメンバーリストを取得するには、サーバーのインスタンスが必要です。
このコードがon_message(message)
にあると仮定すると、
x = server.Server.members
に
x = message.server.members
大文字のSでServer
を使用すると、クラス定義が返されますが、メッセージからserver
プロパティ(小文字のs)を使用すると、Serverのインスタンスが取得されます。
Elif message.content.startswith('!members'):
x = message.server.members
for member in x:
print(member.name) # you'll just print out Member objects your way.
コードを短くすることができると思います
Elif message.content.startswith('!members'):
print(", ".join([member.name for member in message.server.members])) #You do the list with names of roles and print this without cycle