【发布时间】:2022-07-06 15:15:50
【问题描述】:
我正在尝试制作一个简单的命令,如果您不输入 2 个数字作为参数,它会选择 1 到 10 之间的随机数,问题是我需要 2 个参数而不是可选的,如果你把它工作正常:
但是因为这两个参数都不是强制性的,所以你只能写 1 这使它不是我想要的那样工作,这将导致显示你选择的数字而不是 2 个数字之间的随机数:
如果需要,这里是代码:
#COMANDO SLASH NUM
@cog_ext.cog_slash(name='Numero', description='Selecciona un numero aleatorio entre el 1 y el 10 si no se especifica ninguno')
async def numero(self, ctx, primero=1, ultimo=10):
n = random.randint(int(primero),int(ultimo))
await ctx.send(n)
【问题讨论】:
-
用
async def numero(self, ctx, primero: int, ultimo: int):替换您的方法定义使用=1和=10使您的app_command 参数成为可选。 -
@Paul 但我希望如果您不输入任何参数作为默认参数,例如 primeo=1 和 ultimo=1 是可能的,还是我必须选择一个,具有默认值或强制设置?
-
您可以保留您的参数可选,并在您的方法定义下面添加一个条件。
async def numero(self, ctx, primero: int = None, ultimo: int = None):然后下面你的条件:if not primero or not ultimo: primero, ultimo = 1, 10如果条件不符合你的要求,请将or更改为and。
标签: python parameters discord discord.py