UnboundLocalError:局部变量' count'在分配之前引用

时间:2017-07-18 20:35:35

标签: python

在"计数+ = 1"时投掷错误。我试图让它成为一个全球性的等等,它仍然存在问题。这比任何事都更开玩笑,但我想知道为什么它不起作用。

SELECT TOP 1000 NAME
    ,TName
    ,IName
    ,IType
    ,AvgPercent
    ,FCount
    ,PCount
    ,AvgInPages
    ,CAST(RunDate AS DATE) AS RDate
    ,CONVERT(TIME(0), RunTime) AS RTime
FROM INDEX
WHERE CAST(RunDate AS DATE) BETWEEN @StartDate
        AND @EndDate

3 个答案:

答案 0 :(得分:1)

您需要将global关键字移到您的功能中。

count=0
def getAndValidateInput():
    global count
    #print menu
    #So on and so forth

现在您应该能够访问您的计数变量了。它与Python中的作用域有关。您必须在要使用它的每个函数中声明变量是全局变量,而不仅仅是它定义的位置。

答案 1 :(得分:1)

global count应位于getAndValidateInput()函数内。

答案 2 :(得分:0)

我遇到了同样的问题,结果发现它与范围有关,并且在另一个函数定义中有一个函数定义。有用的是编写可以创建和修改全局变量的单独函数。像这样举例如:

def setcount(x):
    global count
    count = x
def upcount():
    global count
    count += 1