3 回答
TA贡献1804条经验 获得超8个赞
如果您分配None给reason,那么您可以检查它。例如reason = None。之后,您可以检查命令是否原因为None。这是代码:
@client.command()
@commands.has_permissions(kick_members=True)
async def kick(ctx, user: discord.Member, *, reason = None):
if not reason:
await user.kick()
await ctx.send(f"**{user}** has been kicked for **no reason**.")
else:
await user.kick(reason=reason)
await ctx.send(f"**{user}** has been kicked for **{reason}**.")
TA贡献1831条经验 获得超4个赞
很简单,只需写:
@client.command()
@commands.has_permissions(kick_members=True)
async def kick(self, ctx, user: discord.Member, *, reason=None):
await user.kick(reason=reason)
await ctx.send(f'{user.mention} has been kicked for {reason}!')
TA贡献1851条经验 获得超5个赞
您收到该错误是因为您的函数如下所示:
async def kick(ctx, user: discord.Member, *, reason: str):
Reason 在这里不是可选的,因此它是一个required argument
. 这意味着在没有该参数的情况下调用此函数将导致错误。添加默认值使其成为可选。
def function(requiredArgument, optionalArgument=defaultValue)
在这种情况下,defaultValue
应该是None
. 现在,当您不为该参数传递任何内容时,将使用它的默认值。这样,您就不再需要添加理由。
添加回答
举报