名称“函数”未定义,但已定义

时间:2021-02-04 20:20:29

标签: python python-3.x discord.py python-3.9

我想做什么:我想在您发送消息后调用它时返回一个命令。

我发送的内容: 命令 你好

结果: 功能() NameError: name 'function' 未定义

我该如何解决这个问题?

代码:

@bot.command()
async def command():
    global variable 
    variable = False
    async def function():
        variable = True
    if variable == True:
        return

@bot.event
async def on_message(message):
    function()
    await bot.process_commands(message)

1 个答案:

答案 0 :(得分:1)

您不能在另一个函数中定义一个函数。 Python 不会将此识别为可以在定义它的范围之外使用的标识符。将您的函数定义移到全局范围之外,如下所示:

async def function(variable):
    variable = True

@bot.command()
async def command():
    global variable 
    variable = False
    function(variable)
    if variable == True:
        return

@bot.event
async def on_message(message):
    function(some_other_variable)
    await bot.process_commands(message)