如何使用在同一行中定义的上下文设置默认值?

2024-06-28 20:21:40 发布

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

我正在创建一个discord bot,我正在尝试使它成为一个成员在没有提到用户的情况下发出命令的地方,它默认为自己。它不能内联工作,我需要在同一行中使用arg

我试图将默认值放在同一行中,但我需要ctx,而ctx是在同一行中定义的,所以它不起作用

@bot.command(name="joined", description="Shows precisely when a member of the server joined", aliases=["entry", "jointime", "join_time"], pass_context=True)
async def joined(**ctx**, member: discord.Member = **ctx.message.author.name**):
    """Says when a member joined."""
    await ctx.send('{0.name} joined in {0.joined_at}'.format(member))

你说的时候我就料到了!加入或!条目,没有用户提及,从上下文中获取用户并使用它。但是,它向我抛出错误消息“ctx未定义”


Tags: 用户name命令定义bot地方arg情况
1条回答
网友
1楼 · 发布于 2024-06-28 20:21:40

您可以标记参数^{},然后检查它是否在协同例程的主体中None

from discord import Member
from typing import Optional

@bot.command(name="joined", description="Shows precisely when a member of the server joined", aliases=["entry", "jointime", "join_time"], pass_context=True)
async def joined(ctx, member: Optional[Member]):
    """Says when a member joined."""
    member = member or ctx.author
    await ctx.send('{0.name} joined in {0.joined_at}'.format(member))

相关问题 更多 >