我一直得到typeerror:send()接受1到2个位置参数,但在使用discord.py中生成的自定义bot命令时给出了3个位置参数

oknwwptz  于 2021-08-20  发布在  Java
关注(0)|答案(2)|浏览(293)

我正在尝试为我朋友的discord服务器制作一个小型游戏机器人,其中一个命令是deathcount(),它基本上是通过使用调用命令id的用户/人员来返回此人的点数,以获取他在python字典中的点数(我知道使用该命令有点愚蠢,但我可能会将其更改为sqlite或只是一个csv文件(稍后),但当我调用命令使用!deathcount在服务器中返回错误typeerror:send()接受1到2个位置参数,但给出了3个,它给出的完整错误是discord.ext.commands.errors.commandinvokeerror:command引发异常:typeerror:send()接受1到2个位置参数,但给出了3个位置参数
这是我的密码:

import discord
from discord.ext import commands
client=commands.Bot(command_prefix='!')
keys=dict() 

@client.command()
async def deathcount(ctx):
  ide=ctx.author.id
  if ide in keys:
      ctx.send("your balance is:",keys[ide])
  else:
      ctx.send("please make a account")
zphenhs4

zphenhs41#

发送():

class Massageable:
    ...

    async def send(message, ...):...
    #              ^^^^^^^

试试看:

ctx.send(f"your balance is: {keys[ide]}")
mlmc2os5

mlmc2os52#

签名 ctx.send 是:

ctx.send(self, msg):

其中self是自动提供的,msg是作为参数传递的字符串。
为了解决您的问题,您可以将 send ```
ctx.send("your balance is:"+keys[ide])

ctx.send("your balance is:"+str(keys[ide]))

取决于键存储的是数字还是字符串。

相关问题