Discord Bot Python - 传递未知数量的参数

时间:2018-03-30 16:20:47

标签: python object parameter-passing discord discord.py

目前正在搞乱Discord.py Bot,我正在努力将多个未知值传递给此函数。在这个例子中,我允许用户添加多个数字,但我不知道它是2个数字的200个数字。

使用下面的代码,我得到一个我无法迭代的类对象(discord.ext.commands.context.Context对象位于0x032AAB10)。

我的类继承自以下代码https://github.com/Rapptz/discord.py/blob/async/examples/playlist.py

中的Music类
class John_Bot(Music):

    @commands.command(pass_context=True, no_pm=True)
    async def add(self, *nums):
        result = 0
        for num in nums:
            try:
                result += num
            except:
                await self.bot.say("Numbers only please")
                break
        await self.bot.say("{} = {}".format((' + '.join(map(str, list(nums)))), result))

如何从这个对象中获取变量?我很可能做了一些愚蠢的事情或者没有完全理解我在做什么,所以提前道歉:D

谢谢, 约翰

1 个答案:

答案 0 :(得分:1)

您正在请求将上下文传递给您的函数,这将成为*nums中的第一个参数。只需将pass_context设置为False,或将功能签名更改为async def add(self, ctxt, *nums)