<legend id='94pYX'><style id='94pYX'><dir id='94pYX'><q id='94pYX'></q></dir></style></legend>

    <bdo id='94pYX'></bdo><ul id='94pYX'></ul>

    <tfoot id='94pYX'></tfoot>
    <i id='94pYX'><tr id='94pYX'><dt id='94pYX'><q id='94pYX'><span id='94pYX'><b id='94pYX'><form id='94pYX'><ins id='94pYX'></ins><ul id='94pYX'></ul><sub id='94pYX'></sub></form><legend id='94pYX'></legend><bdo id='94pYX'><pre id='94pYX'><center id='94pYX'></center></pre></bdo></b><th id='94pYX'></th></span></q></dt></tr></i><div id='94pYX'><tfoot id='94pYX'></tfoot><dl id='94pYX'><fieldset id='94pYX'></fieldset></dl></div>

  1. <small id='94pYX'></small><noframes id='94pYX'>

    1. 为函数中的全局变量赋值时,为什么在赋值&quot;之前引用了&quot;错误?

      Why do I get a quot;referenced before assignmentquot; error when assigning to a global variable in a function?(为函数中的全局变量赋值时,为什么在赋值quot;之前引用了quot;错误?)

      1. <legend id='ntBWC'><style id='ntBWC'><dir id='ntBWC'><q id='ntBWC'></q></dir></style></legend>
          <i id='ntBWC'><tr id='ntBWC'><dt id='ntBWC'><q id='ntBWC'><span id='ntBWC'><b id='ntBWC'><form id='ntBWC'><ins id='ntBWC'></ins><ul id='ntBWC'></ul><sub id='ntBWC'></sub></form><legend id='ntBWC'></legend><bdo id='ntBWC'><pre id='ntBWC'><center id='ntBWC'></center></pre></bdo></b><th id='ntBWC'></th></span></q></dt></tr></i><div id='ntBWC'><tfoot id='ntBWC'></tfoot><dl id='ntBWC'><fieldset id='ntBWC'></fieldset></dl></div>

          <tfoot id='ntBWC'></tfoot>
          • <bdo id='ntBWC'></bdo><ul id='ntBWC'></ul>
          • <small id='ntBWC'></small><noframes id='ntBWC'>

              <tbody id='ntBWC'></tbody>

                本文介绍了为函数中的全局变量赋值时,为什么在赋值&quot;之前引用了&quot;错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                在Python中,我收到以下错误:

                UnboundLocalError: local variable 'total' referenced before assignment
                

                在文件的开头(在错误所在的函数之前),我使用global关键字声明total。然后,在程序体中,在调用使用total的函数之前,我将其赋值为0。我已尝试在不同位置(包括声明之后的文件顶部)将其设置为0,但无法使其正常工作。

                有人看到我做错了什么吗?

                推荐答案

                我认为您错误地使用了"GLOBAL"。请参见Python reference。您应该声明不带GLOBAL的变量,然后在函数内部,当您想要访问全局变量时,您可以声明它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。

                这篇关于为函数中的全局变量赋值时,为什么在赋值&quot;之前引用了&quot;错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)
                Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)
                Is there a way of group by month in Pandas starting at specific day number?( pandas 有从特定日期开始的按月分组的方式吗?)
                Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)
                Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)
                Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)

                  <bdo id='oLuRH'></bdo><ul id='oLuRH'></ul>

                    <small id='oLuRH'></small><noframes id='oLuRH'>

                      <i id='oLuRH'><tr id='oLuRH'><dt id='oLuRH'><q id='oLuRH'><span id='oLuRH'><b id='oLuRH'><form id='oLuRH'><ins id='oLuRH'></ins><ul id='oLuRH'></ul><sub id='oLuRH'></sub></form><legend id='oLuRH'></legend><bdo id='oLuRH'><pre id='oLuRH'><center id='oLuRH'></center></pre></bdo></b><th id='oLuRH'></th></span></q></dt></tr></i><div id='oLuRH'><tfoot id='oLuRH'></tfoot><dl id='oLuRH'><fieldset id='oLuRH'></fieldset></dl></div>

                      1. <tfoot id='oLuRH'></tfoot>
                      2. <legend id='oLuRH'><style id='oLuRH'><dir id='oLuRH'><q id='oLuRH'></q></dir></style></legend>
                            <tbody id='oLuRH'></tbody>