Discord.py - 有没有办法使用*args或多字参数,而不把它作为最后一个参数?

问题描述 投票:0回答:1

这是目前的命令。

`async def namemembers(self, ctx, members, name, *args):`

这很好用,但我想在*args后面添加更多的参数,或者是否有其他方法使用 name 参数,以允许空格和多字。如果我试着做一些类似:

`async def namemembers(self, ctx, members, name, *args, worlds):`

要定义世界,它总是说 world 是一个缺一不可的必要参数。"世界 "是由一个 / 但它仍然认为 / 作为*args的一部分。理想的情况是,我有一个这样的命令。

`async def nameM(self, ctx, name, *, worlds):`

这将允许我使用 name 参数,并输入多个单词。因为目前用这种方式 "允许 "我输入多个词,但反正机器人只发回第一个词。

希望我的问题能说得通。

python bots discord args
1个回答
1
投票

没有。*args 是模棱两可的,因为它可以接受任何数量的参数,所以Python没有办法知道你什么时候完成了 *args 并到 worlds.

Python不知道,也不允许你强制执行 worlds 仅为一个 kwarg。

作为一个经验法则,你可以按照以下顺序编写带有参数的方法。

def main(arg1, arg2, ..., *args, *kwargs):
    pass
© www.soinside.com 2019 - 2024. All rights reserved.