【问题标题】:Multiple optional parameters in discord.pydiscord.py 中的多个可选参数
【发布时间】:2021-11-16 20:32:24
【问题描述】:

我想要一个命令

/profile(可选)(可选2)

/profile -> 会给出我自己的个人资料

/profile personA -> 将给出 personA 的个人资料

/profile 2019 -> 将在 2019 年给出自己的简介

/profile personA 2019 -> 会给出 personA 在 2019 年的简介

目前我只完成了第一个,我需要帮助添加可选参数

async def profile(self, ctx):  
print("profile")

【问题讨论】:

  • discord.Member检查member的配置文件,在你的情况下是personA。 “将在 2019 年给出 xxx 的简介”是什么意思?
  • 我正在为游戏制作个人资料。因此原始配置文件具有每年的统计信息,而可选参数将仅过滤该年的数据
  • 你的数据源是什么?你从哪里得到这些数据?您还可以为其创建一个简单的参数,例如date : int 或类似的东西,然后在您的代码中查询它。这与参数无关,而是您的代码的其余部分如何。

标签: python parameters discord.py optional-parameters


【解决方案1】:

使用typing.Optional 作为可选参数。未传递的值将是 None。

/profile -> 两个参数都为 None
/profile personA -> 成员为 personA,年份为 None
/profile 2019 -> 成员为无,年份为 2019
/profile personA 2019 -> 成员为 personA,年份为 2019

然后您可以检查成员是否为 None 以及是否将 ctx.author 分配给成员。

from typing import Optional

async def profile(self, ctx, member: Optional[discord.Member], year: Optional[int]):
    if member is None:
        member = ctx.author
    ...

至于如何显示配置文件,这取决于您存储数据的方式,在这里可能过于宽泛/离题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2021-06-14
    • 2017-09-02
    • 2023-03-08
    相关资源
    最近更新 更多