UnboundLocalError:在赋值

时间:2016-02-16 05:10:25

标签: python python-2.7

以下代码在分配之前给出错误“UnboundLocalError:局部变量'opTuple'。”(这是一个最小代码)

def opHandler(op):

    if op.type == 2 :
        opTuple = ("push_contact", op.param1, op.param2)
    elif op.type == 5 :
        opTuple = ("add_contact", op.param1, op.param2, op.param3)
    elif op.type == 8 :
        opTuple = ("recommed_contact", op.param1)

    return opTuple

while True :
    op1 = getOp(114514); # returns the op object

    opArray = opHandler(op1)

    print opArray

我认为变量“opTuple”是一个局部变量,这就是我想要的,而且在此代码和库中都没有使用相同的名称。

我该如何解决这个问题?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

如果传入的值与条件检查不匹配,则需要向opTuple添加默认值:

def op_handler(op):

    op_tuple = (None, None, None) # default value

    if op.type == 2 :
        op_tuple = ("push_contact", op.param1, op.param2)
    elif op.type == 5 :
        op_tuple = ("add_contact", op.param1, op.param2, op.param3)
    elif op.type == 8 :
        op_tuple = ("recommed_contact", op.param1)

    return op_tuple