繁体   English   中英

语法错误:位置参数跟随关键字参数 [discord.py]

[英]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的唯一参数是sourceafter ,因此您应该删除bot.loop ,因为您已经提供了这两个参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM