当前位置: 首页 > 知识库问答 >
问题:

从函数返回变量时出现Python错误

贾飞章
2023-03-14

我正在用Python作为后端编写一个应用程序,当我试图返回一个函数的变量时,我得到以下错误

  File "C:\Users\mario\Desktop\Vs projects\backend+frontend\volt-react-dashboard\api\demo_web_app.py", line 43, in translate_write
    return {'text' : response}
UnboundLocalError: local variable 'response' referenced before assignment

这是我使用的代码

@app.route("/translate", methods=["GET", "POST"])
def translate_write():
    prompt = request.json["prompt"]
    category = request.json["categoria"]

    if category == "one":
        response = translate_1(prompt)

    elif category == "two":
        response = translate_2(prompt)
    
    else:
        response = "nothing"
 
    return {'text' : response}

有人知道这个问题的答案吗?

共有1个答案

解高昂
2023-03-14

您正在检查类别是否等于。然后将响应分配给一个值。但如果category从来不等于twoone。下面是一个例子。

x = 2
if x == 3:
    word = 'three'
elif x == 4:
    word = 'four'
print(word)

错误

回溯(最近一次调用):文件“/users/aspera/documents/python/py_programs/tests/test.py”,第6行,打印(word)NameError:未定义名称“word”

相反,在elif之后需要一个else语句。

x = 2
if x == 3:
    word = 'two'
elif x == 3:
    word = 'three'
else:
    word = 'not there'
print(word)

输出

not there
 类似资料:
  • 问题内容: 随着框架的发展,我决定将其拆分为文件,而不是将其保留在主设计文件中。但是,这样做不会返回任何值。 数据不为空-如果我警告js文件中的值,它们在那里! 功能: 1 .js文件中的功能(在执行之前包含) 因此,这是执行部分: 而且测试是空的…我已经尝试过不同的编写方式,但是我想我误解了js的可能性吗? 问题答案: 您不能这样做:由于调用是异步的,因此get_data函数无法返回ajax调用

  • 问题内容: 随着框架的发展,我决定将其拆分为文件,而不是将其保留在主设计文件中。但是通过这样做,函数的返回不会返回任何值。 数据不为空-如果我警告js文件中的值,它们在那里! 功能: 1 .js文件中的函数(在执行之前包含) 因此,这是执行部分: 并且测试是空的…我已经尝试了不同的编写方式,但是我想我误解了js的可能性吗? 问题答案: 您不能这样做:由于调用是异步的,因此get_data函数无法返

  • 问题内容: 我想回到别处外使用的 范围 的 我猜想这是与范围有关,但它似乎不相同的方式工作 C# 不 问题答案: 是的,我之前的答案不起作用,因为我没有对您的代码给予任何关注。:) 问题在于匿名函数是一个回调函数- 即getJSON是一个异步操作,它将在某个不确定的时间点返回,因此即使变量的范围不在该匿名函数(即闭包)之外,它也会没有您认为应该的价值: 要使用由getJSON调用设置的studen

  • 问题内容: 我想知道是否存在一种实现类似于map getter的功能的方法:它返回返回值作为第一个参数,(可选地分配)第二个值作为第二个参数。因此,我需要可以通过以下方式调用的函数: 问题答案: 不,它无法完成,唯一的选择是返回一个指针并检查它是否为nil。

  • 问题内容: 我正在读一本叫做《 Go编程语言》的书,在有关指针的第二章中,写了以下内容 函数返回局部变量的地址是绝对安全的。例如,在下面的代码中,即使调用返回后,由对f的特定调用创建的局部变量v仍将存在,并且指针p仍将引用它: 我完全不明白这一点,应该在执行函数后销毁局部变量。是因为可能v是在堆上分配的。我知道在C语言中,如果您使用malloc分配空间,函数执行后就不会销毁它,因为它在堆上。 问题

  • 问题内容: 我将ajax技术与php结合使用,我想知道如何从onreadstatechange调用的函数中获取返回变量。 一个Java函数称为onsubmit,然后调用一个php脚本来验证数据库中的某些内容,并根据结果返回true或false。 这是我遇到问题的地方,我希望onsubmit =“ return snappyajaxfunction()”根据php的结果返回false或true。 我