如何在discord.py中设置可选参数?

2024-09-21 05:41:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我曾尝试在线研究,但没有其他问题能够帮助我解决我的问题

这是我的设想

我正在discord.py中发出静音命令

我希望时间是可选的,但如果没有指定时间,我希望该参数成为原因的一部分

澄清我的意思:

@client.command()
@commands.has_permissions(kick_members=True)
async def mute(ctx, member: Member = None, time: int = None, *, reason = None):
    pass

这里,如果time是None,则将其作为reason的一部分

bot将接受以下两项:

!mute @user 1h spam!mute @user spam

这可能吗


Tags: py命令clientnone参数time时间原因
2条回答

您可以选择异步等待,然后取消用户静音:

@bot.command()
async def mute(ctx, member: discord.Member, time: typing.Optional[int]):
    await member.edit(mute=True)
    if time:
        await asyncio.sleep(time)
        await member.edit(mute=False)

您可以设置默认参数:

@bot.command()
async def mute(ctx, member: discord.Member, time=None):
    if not time:
        # Mute indefinitely? do whatever you want
    else:
        # Mute for x amount of time

参考文献:

相关问题 更多 >

    热门问题