python - Discord Bot (Python) 输入问题
问题描述
我为学校的事情写了一个机器人,我希望拥有不和谐的人能够将内容添加到我存储在 JSON 中的常见问题解答列表中。
目前我有这样的:
@bot.command(aliases = ['faqadd'])
async def addfaq(ctx, question = None, *, answer = None):
然而,这样做的问题是,当一个人这样添加它时:
.faqadd This is a question? This is an answer.
机器人只会对问题使用“This”和“is a question? This is an answer”。将是答案。有没有一种简单的方法可以简单地接收两组字符串,还是应该用问号将它分开?
解决方案
该discord.ext.command
界面的设置使您有两个选项。一种是使用位置参数并要求用户在参数周围加上引号。
@bot.command(aliases = ['faqadd'])
async def addfaq(ctx, question = None, answer = None):
然后用户输入
.faqadd "This is a question?" "This is an answer."
正如您已经注意到的,另一种方法是采用单个仅关键字参数并自己进行解析。
@bot.command(aliases = ['faqadd'])
async def addfaq(ctx, *, arg = None):
推荐阅读
- javascript - 来自其他脚本的变量有时无法加载
- bash - 通过 Shell 脚本输入更改 Jenkins 作业的显示名称
- javascript - 试图从我在firebase中的数据库中获取当前用户名,但是却未定义
- nginx - 为什么我的 nginx 重写规则没有按预期工作?
- c++ - 如何在 C++ 中将空格、等号和引号解析为向量?
- c++ - 使用指向数组的指针打印动态分配的二维数组的值 今天问
- spring-webflux - 使用 ReactiveMongoTemplate 批量更新
- django - python- Django:Django“追加斜线”在哪里?
- c# - 使用本地文件共享中的 nuget 将 .NET Core docker 容器部署到 Azure
- javascript - 多个ajax查询