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

在python中分配错误之前引用

卢黎明
2023-03-14
问题内容

在Python中,出现以下错误:

UnboundLocalError: local variable 'total' referenced before assignment

在文件的开头(在错误源自的函数之前),我使用global关键字声明“总计”。然后,在程序主体中,在调用使用“总计”的函数之前,将其分配为0。我尝试在各个位置(包括文件顶部,在声明之后)将其设置为0。
),但我无法使其正常工作。有人看到我在做什么错吗?


问题答案:

我认为您错误地使用了“全局”。请参阅Python参考。您应该声明不带全局变量的变量,然后在要访问全局变量的函数内部声明它global yourvar

#!/usr/bin/python

total

def checkTotal():
    global total
    total = 0

请参阅以下示例:

#!/usr/bin/env python

total = 0

def doA():
    # not accessing global total
    total = 10

def doB():
    global total
    total = total + 1

def checkTotal():
    # global total - not required as global is required
    # only for assignment - thanks for comment Greg
    print total

def main():
    doA()
    doB()
    checkTotal()

if __name__ == '__main__':
    main()

因为doA()不修改 全局总数, 所以输出为1而不是11。



 类似资料:
  • 我一筹莫展,我不知道是什么引起了这个问题。我所做的唯一更改是将loginquiredmixins添加到基于类的视图中。 当我开始设计登录页面时,我似乎弄坏了一些东西,但我不知道具体是什么,这是一个奇怪的想法,CSS或某些HTML会导致什么问题,对吗? 我尝试在语句之前赋值变量,并将其设置为,但这似乎不能正常工作,因为它会抛出错误。我使用的是基本的django认证系统。 我得到的确切错误是- “ 这

  • 实际上,我正在尝试创建一个应用程序,有n个多媒体文件,其中包括图像和视频。我的应用程序大小大约为,我的资产大小大约为。当我在普通设备上加载应用程序时,我们没有遇到任何问题,但在具有的设备上,如等,应用程序在过程中崩溃,错误是“内存不足”。我已经用这个生成了错误报告。我也尝试过位图工厂。同时,我使用了数组的视频方法。 有谁能帮助解决这个问题吗? 致命异常:主进程:com.example.we.app

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

  • 我有这个我解决不了的问题,这是我的实体类: 最后一行是失败的,如果我移除它们,它起作用,我的意思是,它可以保存主题,但当我尝试这样做,它失败,我不知道如果我做错了什么,请帮助我!!

  • 问题内容: 在python中,调用和分配给字典之间有区别吗?如果是,那是什么?例: 问题答案: 如果您还有另一个变量也引用相同的字典,则有很大的不同: 这是因为分配会创建一个新的空字典并将其分配给变量。这样就指向旧字典,里面还有项目。但是,清除相同的字典,并且两者都指向。

  • 我正在尝试运行下面的程序,在该程序中,我使用一个名为Reserve的函数动态地为变量分配内存。当我运行应用程序时,由于在一个单独的函数中为一个空指针分配内存,我会得到分段错误,但是如果我想在主函数中分配内存,我不会得到这个错误。那我做错了什么? 代码如下:

  • 问题内容: 我知道在浮点算法中会发生舍入错误,但是有人可以解释这一原因: 这在x64上的Python 2和Python 3上都发生。 就我所见,这要么是错误,要么是非常愚蠢的规范,因为我看不出最后一个表达式的求值理由。 为什么不简单定义为? 编辑 :也计算为。至少这是必然的,因为然后评估为 编辑 :这不是浮点数学运算符被破坏吗?因为我在问为什么这个特定的运算会受到(可能是可以避免的)舍入错误,为什