当前位置: 首页 > 面试题库 >

分配前引用的局部变量

曹鹏海
2023-03-14
问题内容

我想知道你们是否可以提供帮助。我试图做一个简单的视图,它将用户发送到客户端创建表单,但是我一直收到此错误:

赋值之前引用的局部变量“ form”

查看我的代码,看不到有什么问题。

def add_client(request):
    user = request.user
    if request.method =='POST':
        form = AddClientForm(request.POST)
        if form.is_valid():
            client = form.save(commit=False)
            client.save()
            return HttpResponseRedirect('/')
        else:
            form = AddClientForm()

    return render_to_response('clients/addClient.html', { 'form': form, 'user': user, }, context_instance=RequestContext(request))

有人告诉我我哪里出问题了吗?


问题答案:

这是正在发生的事情:

  1. if没有输入该块。
  2. form变量未定义。
  3. 然后,你尝试formreturn语句中引用变量。
    至于解决方法,这确实是你要决定的。解决的方法取决于你希望代码执行的操作(如果请求方法不是)POST。


 类似资料:
  • 问题内容: 以下代码给出了错误 我怎样才能解决这个问题?谢谢你的帮助! 问题答案: 你可以通过传递参数而不是依赖全局变量来解决此问题

  • 问题内容: 认为我在这里疯了。 给我UnboundLocalError。我在这里错过了什么重要概念? 问题答案: 您正在分配一个全局变量,这意味着您需要将其 标记 为全局变量: 当您在局部范围内分配变量时,除非您先使用一条语句告诉python,否则将假定它是局部变量。

  • 问题内容: 以下代码引发UnboundLocalError: 错误: 我不知道为什么。有人能指出我正确的方向吗? 问题答案: 如果conn.cursor()引发异常,则将永远不会分配cur,因此,finally块中的代码将在分配之前引用cur。 尝试删除该try块并查看会发生什么,很可能conn.cursor()抛出了某种异常,您需要对它进行梳理。

  • 问题内容: 我有一个座位数组,该数组有两个字符串(已选择和为空)。单击鼠标后,我想遍历数组并找到选定的座位。当我按下按钮时,它说: 无法分配最终的局部变量seatno,因为它是用封闭类型定义的。 问题答案: 关键是封闭类型中的方法局部变量实际上已 复制 到匿名类的实例中(这是由于激活框架的问题,但我将不做进一步的详细介绍,因为这与问题无关)。这就是为什么它们需要是final的原因,因为嵌套类型实例

  • 问题内容: 但我在编译代码时遇到此错误: 异常类型:UnboundLocalError 异常值:分配前已引用本地变量“服务器” 异常位置:/ home / amine / PFE目录/ websvc中的mysite1 / myform / Webservice.py,第43行Python可执行文件:/usr/bin/python2.7 我在此函数中添加参数之前,此代码正常工作 问题答案: 您的代码

  • 问题内容: 这是JDK的类方法。作者为什么将字段分配给局部变量? 上面和下面之间有什么区别?这与线程安全有关吗? 问题答案: 为了稍微扩展一下Michael的答案,我希望它可以确保该方法永不返回,而且还可以提供所提到的性能优势。 给出以下代码: 至少从理论上讲,在多线程代码中,可以将字段设置为第一次读取()和第二次读取之间,然后将其返回。我没有看过其余的代码,但是我假设还有其他可能被分配的地方。对