如何将Discord命令中的멘션: discord.User参数设为可选参数?
如何将Discord.py命令参数设为可选?
要把「멘션: discord.User」改成可选参数,只需两步操作:
- 给参数设置默认值
None,同时用Optional标记参数类型(需先导入typing模块的Optional) - 在函数内添加判断逻辑:若未传入用户,就使用发起命令的用户自身ID
修改后的完整代码如下:
from typing import Optional import discord # 假设bee是你已初始化完成的Bot实例 @bee.command(name="돈얼마", description="지갑 지갑을 보자!") async def 돈얼마(interaction: discord.Interaction, 멘션: Optional[discord.User] = None): # 判断是否传入目标用户,未传入则使用当前发起命令的用户ID userid = 멘션.id if 멘션 else interaction.user.id embed=discord.Embed(title="돈 지급", description=f"잔액 : {money[userid]}원\n이정도 밖에 없는건 아니죠? 에이", color=0x5cff67) await interaction.response.send_message(embed=embed)
关键细节说明:
Optional[discord.User]明确标注该参数可以是discord.User类型或None- 默认值
= None让命令执行时可以省略这个参数 - 新增的判断逻辑确保无论是否传入用户,都能获取到有效的
userid,避免触发报错
内容的提问来源于stack exchange,提问作者jkim
相关产品推荐
相关产品推荐

