每当我运行代码时,async
都会出现错误,我已经导入asyncio
来尝试解决此问题,但错误不断涌入
import discord
from discord.ext import commands
from discord.ext.commands import Bot
import asyncio
bot = command.Bot(command_prefix="=")
@bot.event
async def on_ready():
print ("Bot Onine!")
print ("Hello I Am " + bot.user.name)
print ("My ID Is " + bot.user.id)
我得到的错误:
async def on_ready(): ^ SyntaxError: invalid syntax
如果有人知道解决方法,请
答案 0 :(得分:1)
要使用async
关键字,您需要python 3.5或更高版本。如果您使用的是python 3.4或更低版本,则不能使用async
。
另一种方法是用coroutine
装饰该方法。这段代码
@bot.event
async def on_ready():
...
成为:
@bot.event
@asyncio.coroutine
def on_ready():
....
由于不和谐事件已经需要bot.event
装饰器,因此discord.py
api提供了async_event
装饰器以在一次调用中完成协程和事件装饰,因此您也可以编写它像这样:
@bot.async_event
def on_ready():
....
同样,您也不能使用await
,因此必须使用yield from
。
await bot.say('Some response')
成为
yield from bot.say('Some response')