我有一个如下的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 设置为全局,但仍然失败。
答案 0 :(得分:0)
如评论中所述,您可能应该指定在何处引发异常,但是乍一看,如果您进入if rule.startswith('Something'):
但没有碰到第二条if语句[State] == 'ENABLED'
,则状态为win无法启动,可能会在return语句上引发错误。