【发布时间】:2017-09-19 14:17:59
【问题描述】:
我正在使用 discord.py 与 discord 进行交互。
def hi():
await client.send_message(channel, message)
出现语法错误,除非我在使用 hi() 函数时写了“异步”。 这个我真的不明白,请帮忙!
【问题讨论】:
标签: python syntax-error coroutine discord
我正在使用 discord.py 与 discord 进行交互。
def hi():
await client.send_message(channel, message)
出现语法错误,除非我在使用 hi() 函数时写了“异步”。 这个我真的不明白,请帮忙!
【问题讨论】:
标签: python syntax-error coroutine discord
您可以在事件循环中安排协程。您不能从非协程内部调用它们或等待它们。
让我们检查以下代码:
import asyncio
async def greetLater(name, delay):
await asyncio.sleep(delay)
print("Hello {}!".format(name))
def main():
loop = asyncio.get_event_loop()
loop.run_until_complete(greetLater("masnun", 10))
if __name__ == '__main__':
main()
在上面的代码中,greetLater 是一个协程。我们不能直接从main 函数中调用它。我们这里需要做的是创建一个事件循环,然后在那里调度协程。我们使用asyncio 模块来帮助我们创建事件循环并运行协程。
更多参考资料:
http://masnun.com/2015/11/13/python-generators-coroutines-native-coroutines-and-async-await.html
http://masnun.com/2015/11/20/python-asyncio-future-task-and-the-event-loop.html
(免责声明:链接到我关于该主题的个人博客文章,您可以google以获取更多参考)
【讨论】: