Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何确定我是否有会员。提及? @bot.command() @commands.has_权限(manage_messages=True) 异步def清除(ctx,成员:discord.member,amount=200): 等待ctx.channel.purge(限制=数量) 如果金额>200: 等待ctx.发送(f“{成员.提及}merci de clear entre 0-200消息”) 其他: 等待ctx.send(f“j'ai clear{amount}message(s)”,在=5之后删除)```_Python_Discord_Discord.py - Fatal编程技术网

Python 如何确定我是否有会员。提及? @bot.command() @commands.has_权限(manage_messages=True) 异步def清除(ctx,成员:discord.member,amount=200): 等待ctx.channel.purge(限制=数量) 如果金额>200: 等待ctx.发送(f“{成员.提及}merci de clear entre 0-200消息”) 其他: 等待ctx.send(f“j'ai clear{amount}message(s)”,在=5之后删除)```

Python 如何确定我是否有会员。提及? @bot.command() @commands.has_权限(manage_messages=True) 异步def清除(ctx,成员:discord.member,amount=200): 等待ctx.channel.purge(限制=数量) 如果金额>200: 等待ctx.发送(f“{成员.提及}merci de clear entre 0-200消息”) 其他: 等待ctx.send(f“j'ai clear{amount}message(s)”,在=5之后删除)```,python,discord,discord.py,Python,Discord,Discord.py,错误: File "C:\Users\dzzdz\PycharmProjects\pythonProject12\venv\lib\site-packages\discord\ext\commands\core.py", line 451, in _actual_conversion ret = await instance.convert(ctx, argument) File "C:\Users\dzdz\PycharmProjects\pytho

错误:

File "C:\Users\dzzdz\PycharmProjects\pythonProject12\venv\lib\site-packages\discord\ext\commands\core.py", line 451, in _actual_conversion
    ret = await instance.convert(ctx, argument)   
File "C:\Users\dzdz\PycharmProjects\pythonProject12\venv\lib\site-packages\discord\ext\commands\converter.py", line 195, in convert
    raise MemberNotFound(argument) discord.ext.commands.errors.MemberNotFound: Member "300" not found.
在这个错误中,我们可以看到该命令只有在我这样做的情况下才有效!清除@(金额)。
如果我删除discord.member,它就会工作。我无法删除discord.member,因为在默认参数之前不能有可选参数。

那我该怎么办呢?

以下是我注意到的一些错误:

首先)由于您正在寻找邮件的作者,
成员在这里根本不相关。我们可以简单地使用
ctx.author
,然后根据需要显示它

秒)您的代码中有一个逻辑错误。如果您的
金额>200
语句与您的代码不符,则可以删除200多条消息,而不会显示错误消息

一个可能的代码是:

@client.command()/@bot.command()/@commands.command()#取决于您使用的内容
@commands.has_权限(manage_messages=True)
异步def清除(ctx,数量=200):
如果金额>200:
等待ctx.send(f“{ctx.author.notice}merci de clear entre 0-200消息”)
返回#不要继续
其他:
等待ctx.send(f“j'ai clear{amount}message(s)”,在=5之后删除)
等待ctx.channel.purge(限制=数量)#如果低于200,则清除消息

我将您的问题解释为“我想拥有一个用户,但如果我不提及该用户,我会得到一个错误。帮助?”当然,有几种方法可以做到这一点,因此我将向您展示其中的两种

方法1:使用
None

如果不想使用任何额外的导入,可以将
成员
移动到前面,使其成为
None
。对于这两种方法,您都需要使用if语句将
成员更改为
ctx.author

@bot.command()
@commands.has_权限(manage_messages=True)
异步定义清除(ctx,金额=200,成员:discord.member=None):#将成员向右移动
如果成员==无:#如果未提及任何人
member=ctx.author#默认为ctx.author
等待ctx.channel.purge(限制=数量)
如果金额>200:
等待ctx.发送(f“{成员.提及}merci de clear entre 0-200消息”)
其他:
等待ctx.send(f“j'ai clear{amount}message(s)”,在=5之后删除)
方法2:使用

这通常用作可选参数。这允许您的<代码>成员<代码>位于中间。

导入键入
# ...
#其他代码
@bot.command()
@commands.has_权限(manage_messages=True)
AsiNC DEF清除(CTX,成员:键入。可选[不一致。成员] =无,金额=200):
如果成员==无:#如果未提及任何人
member=ctx.author#默认为ctx.author
等待ctx.channel.purge(限制=数量)
如果金额>200:
等待ctx.发送(f“{成员.提及}merci de clear entre 0-200消息”)
其他:
等待ctx.send(f“j'ai clear{amount}message(s)”,在=5之后删除)

这是否回答了您的问题?你只想提及使用该命令的用户吗?none类型没有属性提及,因此no its可能不起作用,我想要!明确(int)btwi奥尔德雷迪尝试ctx。作者…和数量的问题,我奥尔德雷迪知道,谢谢你的答案@那么实际的问题是什么呢?@Theoksj我看到你接受了一个和我一样的答案。接受另一个的原因是什么?只是为了让我知道未来。在我看来,你可以在你执行的
命令中提到其他人是没有任何意义的。不,哈哈,我不能接受2,是的,你的方式可能很好(2个答案相同),如果你愿意,我会接受你的我只是随机点击lol@Theoksksj请随意接受对您帮助最大的答案,我只是感到困惑,要求澄清。我不想说服这里的任何人认为我的答案是正确的!:)