不知道为什么`异步锁定`不起作用了

2024-03-29 10:24:01 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,只要有人在聊天室频道中输入命令!test,它就会在聊天频道中打印出相应的以下字符串。但是,我希望该命令一次只能使用一次,因此我希望锁定该命令直到它完成:

import discord, asyncio, time

client = discord.Client()

@client.event
async def on_message(message):
    lock = Lock() # define Lock
    if message.content.lower().startswith("!test") and not lock.locked():
        lock.acquire() # Lock the !test command so it can't be used now
        await client.send_message(message.channel,'test1rgews')
        await asyncio.sleep(1)
        await client.send_message(message.channel,'test2thewf')
        await asyncio.sleep(1)
        await client.send_message(message.channel,'test3rhtvw')
        await asyncio.sleep(1)
        await client.send_message(message.channel,'test4trjyr')
        await asyncio.sleep(1)
        await client.send_message(message.channel,'test5dmuye')
        await asyncio.sleep(10)
        lock.release() # Unlock the !test command now

client.run('clienttokenhere')

但是我得到一个错误,它说NameError: name 'Lock' is not defined,尽管我确实把它定义为lock = Lock()。在


Tags: thetest命令clientsendasynciolockmessage