[英]SyntaxError: positional argument follows keyword argument [discord.py]
这是我的代码:
async def tracklooper(ctx, timesPlayedTrack):
voice = get(bot.voice_clients, guild=ctx.guild)
if (timesPlayedTrack <= totaltime):
if voice and voice.is_playing():
voice.stop()
print(str(timesPlayedTrack))
run_coroutine_threadsafe(msg.edit(content="Playing "+vTT+" for "+str(timesPlayedTrack)+" time/s"), bot.loop)
voice.play(discord.FFmpegPCMAudio(audio), after=lambda e: asyncio.run_coroutine_threadsafe(tracklooper(ctx, timesPlayedTrack+1)), bot.loop)
voice.is_playing()
else:
run_coroutine_threadsafe(msg.delete(), bot.loop)
run_coroutine_threadsafe(ctx.send("Finished playing "+vTT+" for "+str(totaltime)+" times"), bot.loop)
run_coroutine_threadsafe(looptrack_set_times.delete(), bot.loop)
run_coroutine_threadsafe(ply.delete(), bot.loop)
这是错误:
voice.play(discord.FFmpegPCMAudio(audio), after=lambda e: asyncio.run_coroutine_threadsafe(tracklooper(ctx, timesPlayedTrack+1)), bot.loop)
^
SyntaxError: positional argument follows keyword argument
我对 python 语言不是很熟悉,所以我很难找到修复程序。
在您的情况下,关键字参数after=lambda...
应始终放在函数调用的末尾。 您已将bot.loop
放在最后,这不是关键字参数。
查看 API 文档, VoiceClient.play
的唯一参数是source
和after
,因此您应该删除bot.loop
,因为您已经提供了这两个参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.