UnboundLocalError:当变量同时具有局部和全局作用域时,在赋值之前引用的局部变量

2024-09-30 14:22:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个>;1000行代码,与此代码块类似

import random
def assignment():
    global a
    a=10

def confusion():
    t=random.randint(0,50)
    if(t==10):
        a = 5
        return a
    assignment()
    # global a #Can be fixed like this
    print a

confusion()

当t!=十,

Traceback (most recent call last):
  File "UnboundLocalVariable.py", line 15, in <module>
    confusion()
  File "UnboundLocalVariable.py", line 13, in confusion
    print (a)
UnboundLocalError: local variable 'a' referenced before assignment

使用Python 3.5.2 现在我明白了为什么每当t!=但问题是它很少出错。任何关于何时不失败的原因的见解都将受到赞赏


Tags: 代码inpyimportgtdeflinerandom
1条回答
网友
1楼 · 发布于 2024-09-30 14:22:01

你可以试试

import random
def assignment():
    global a
    a=10

def confusion():
    global a
    t=random.randint(0,50)
    if(t==10):
        a = 5
        return a
    assignment() 
    print a

confusion()

您遇到的错误是因为“a”参数未指定任何值。 请注意,在这种情况下,assignment()方法不是最佳做法

相关问题 更多 >