Python discory.py随机发送随机字符串不工作

Python discory.py随机发送随机字符串不工作,python,random,discord,discord.py,Python,Random,Discord,Discord.py,我有以下代码: import string import random @client.command() async def rng(ctx): await ctx.send(''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(5))) 但由于某些原因,它总是发出错误,即“Command”对象没有属性“choice” 但当我刚跑的时候 >>> import str

我有以下代码:

import string
import random

@client.command()
async def rng(ctx):
    await ctx.send(''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(5)))
但由于某些原因,它总是发出错误,即“Command”对象没有属性“choice”

但当我刚跑的时候

>>> import string
>>> import random
>>> ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(5))
在控制台中,它工作得非常好,并输出我想要的随机字符串。我怎样才能解决这个问题


编辑:在本例中,我意外地使用了
random
作为命令名(现在已对其进行了更新),即使将其更改为其他名称,它仍然无法工作。

因为库名和命令名是相同的。您可以做3件事来解决此问题:

  • import random as rand
    ,而不是
    import random
    。然后在代码中,您应该将
    random.choice
    更改为
    rand.choice
  • 将命令名称更改为其他名称,如
    rand
或者,最好的选择是

  • 将命令名称更改为
    \u random
    ,然后添加
    random
    作为命令别名

即使将命令更改为类似于
rng
import random as rand
@client.command()
async def random(ctx):
    await ctx.send(''.join(rand.choice(string.ascii_uppercase + string.digits) for _ in range(5)))
import random
@client.command()
async def rand(ctx):
    await ctx.send(''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(5)))
import random
@client.command(aliases=['random'])
async def _random(ctx):
    await ctx.send(''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(5)))