You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅用ctx参数在discord.py中通过client.say@提及用户

解决Discord.py中正确@提及用户的问题

我懂你的困扰——直接格式化ctx.message.author会输出用户对象的字符串形式,而不是Discord能识别的@提及格式,所以才会出现不符合预期的显示内容。

其实不需要给命令添加额外参数,只需要调用用户对象的mention属性就能解决这个问题,这个属性会自动生成Discord服务器可正确解析的提及标签。

修改后的代码可以写成这样:

@client.command(pass_context=True)
async def bla(ctx):
    await client.say(f"Bla bla bla! {ctx.message.author.mention}")

如果你习惯用format方法,也可以这么写:

await client.say("Bla bla bla! {}".format(ctx.message.author.mention))

之所以这样有效,是因为mention是Discord.py为用户对象专门提供的属性,它会返回类似<@用户ID>的格式,Discord服务器识别到这个格式后,就会自动转换成可点击的@用户标签,刚好实现你想要的效果~

内容的提问来源于stack exchange,提问作者user9818240

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:10:07