Python:分配问题

时间:2012-10-05 13:42:38

标签: python function variable-assignment runtime-error

我有一个我在/var/tmp开发的脚本并且工作...当我因某种原因移动到所需目录时它返回以下错误:

Traceback (most recent call last):
  File "tail.py", line 104, in <module>
    test=isItAlive(line)
  File "tail.py", line 55, in isItAlive
    return test
UnboundLocalError: local variable 'test' referenced before assignment

它呻吟的功能是:

def isItAlive(text):
        with open(valcsv) as f:
                searches = [x.split(',')[1] for x in f.read().splitlines()]
                for search in searches:
                #       print search
                        if not search in text:
                                test="TOBEADDED"
                        else:
                                test=search
                                break
                return test
        f.close()

2 个答案:

答案 0 :(得分:4)

您的searches值为空,因此for循环永远不会为test赋值。

在功能开始时初始化test

def isItAlive(text):
    test = None

并找出您的valcsv文件为空的原因。

答案 1 :(得分:3)

如果searches是一个空列表,则将跳过整个循环,并且永远不会初始化test。你需要在循环之前声明test = None或其他东西。