社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

我的变量不工作,使用discord.py(python)得到一个奇怪的错误代码

PiG2164 • 5 年前 • 2139 次点击  
if message.content.startswith('!annoy'):
mseg = ('who do you want to Annoy?')
await client.send_message(message.channel, mseg)
responses = client.wait_for_message(author=message.author)
myvart = responses.content
if message.content.startswith(myvart):
  msg = ('Have fun, pleb...')
  await client.send_message(message.channel,msg)
  no = 0
  while no != 50:
    time.sleep(1)
    await 
   client.send_message(client.get_member_named('myvart'), 
   random.choice(insults))
    no = no + 1

我得到的错误代码如下:

Ignoring exception in on_message
Traceback (most recent call last):
  File "/home/runner/.site-packages/discord/client.py", line 307, in _run_event
    yield from getattr(self, event)(*args, **kwargs)
  File "main.py", line 41, in on_message
    myvart = message.responses.content
AttributeError: 'Message' object has no attribute 'responses'

edit;;不一致时的消息输出为:

!惹恼

你想惹恼谁?

<generator object Client.get_all_members at 0x7f15a94d19e8>
<generator object Client.get_all_members at 0x7f15a94d1990>
<generator object Client.get_all_members at 0x7f15a94d1678>
<generator object Client.get_all_members at 0x7f15a9510c50>
<generator object Client.get_all_members at 0x7f15a94d16d0>
<generator object Client.get_all_members at 0x7f15a9510830>
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44172
 
2139 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Reedinationer
Reply   •   1 楼
Reedinationer    6 年前

错误显示给您带来麻烦的代码行是:

myvart = message.responses.content

这条信息接着解释说:

“消息”对象没有“响应”属性

你可以找到 所有 的可用属性 Message 在: https://discordpy.readthedocs.io/en/latest/api.html#message

在那里你会看到 Message.content 是一个可以调用的有效对象。因此,我建议您更换

myvart=消息.responses.content

用:

myvart = message.content
Patrick Haugh
Reply   •   2 楼
Patrick Haugh    6 年前

Client.wait_for_message 是一次联程,必须是 await 预计起飞时间:

responses = await client.wait_for_message(author=message.author)

同样,你的 send_messages 缺少一个 等待 ,您应该使用 asyncio.sleep 结束 time.sleep 以免阻塞事件循环。