返回时发生UnboundLocalError:Python

时间:2018-12-10 14:07:25

标签: python boto3

我有一个如下的python boto3代码:

for rule in event_rules:
        if rule.startswith('Something'):
            print('[INFO] Proceeding!...')
            describe_rule = self.cw_event.describe_rule(
                Name=rule
            )
            if describe_rule['State'] == 'ENABLED':
                state = True
                break
        else:
            state = False
    return state
    .
    .
    .
if check == True:
       print('[INFO] SUCCESS' )          

else:
       print('[INFO] FAILED')

这里 check 是一个类函数,从其函数中调用上述代码块。我对函数和类部分很有信心。 在这种情况下,当规则存在且处于启用状态时,代码成功。如果条件不匹配,则会引发如下错误:

  

UnboundLocalError:分配前已引用本地变量“状态”

我无法弄清楚。我经历了这个答案:UnBoundLocalError: Local Variable Referenced Before Assignment [Counter],并且将 state 设置为全局,但仍然失败。

1 个答案:

答案 0 :(得分:0)

如评论中所述,您可能应该指定在何处引发异常,但是乍一看,如果您进入if rule.startswith('Something'):但没有碰到第二条if语句[State] == 'ENABLED',则状态为win无法启动,可能会在return语句上引发错误。