我试图不问这个问题,所以我尝试了2天来解决这个问题:(我不能。在这里,我是 我只是试图访问异步函数外部的列表“信号”,以便稍后在我的同步代码上使用它。
这是来自不和谐包装器“ discord.py”的异步功能 它读取特定频道上的消息。我的目标是从每个邮件内容中获取一些列表。
import asyncio
from syncer import sync
import discord
import os
import time
from discord.ext import commands
class A:
TOKEN = "XXXXXXXXX"
client = commands.Bot(command_prefix = ".")
@client.event
async def on_message(message):
autor = message.author
content = message.content
channel = message.channel.id
while ( channel == 'XXXXXXXXXXXXXX' ):
if #some filters
Signal =[message.content]
return Signal #'till here the code functions and i get the list'
bot =A()
tasks = asyncio.ensure_future(bot.on_message())
loop =asyncio.get_event_loop()
loop.run_until_complete(asyncio.gather(*tasks))
bot.client.run(bot.TOKEN)
这是我要获取的信号列表:
bot =A()
tasks = asyncio.ensure_future(bot.on_message())
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.gather(*tasks))
bot.client.run(bot.TOKEN)
loop.run_until_complete(asyncio.gather(*任务)) AssertionError:收益率未用于将来
我尝试使用名为Syncer的async_to_sync包装器:
bot =A()
b = sync(bot.on_message(message))
assert Signal ==b()
b =同步(bot.on_message(消息)) NameError:名称“消息”未定义 未公开的客户会话 client_session:
当我定义消息时:
message = {}
bot =A()
b = sync(bot.on_message(message))
assert Signal ==b()
b = sync(bot.on_message(message))
TypeError:on_message()接受1个位置参数,但给出了2个 未公开的客户会话 client_session:
对于这个愚蠢的问题,我再次感到抱歉,我知道我可能做错了所有 我尽力学习 谢谢