以下代码在分配之前给出错误“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”是一个局部变量,这就是我想要的,而且在此代码和库中都没有使用相同的名称。
我该如何解决这个问题?谢谢你的帮助!
答案 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