【发布时间】:2019-09-14 23:23:16
【问题描述】:
在我的代码中,我正在测试用户是否拥有 AWS 访问密钥:
for response in paginator.paginate(UserName=user_name):
if len(response['AccessKeyMetadata']) and 'AccessKeyId' in response['AccessKeyMetadata'][0].keys():
key1 = response['AccessKeyMetadata'][0]['AccessKeyId']
稍后在我的代码中我会测试 key1 是否存在:
if key1:
print("\nAccess Key 1: ", key1)
else:
print("The user does not have any keys.")
如果用户根本没有键,则函数将失败并出现以下错误:
File ".\aws_iam_utils.py", line 1430, in rotate_access_keys
if key1:
UnboundLocalError: local variable 'key1' referenced before assignment
我是否在测试 key1 是否正确存在?为什么我得到一个未绑定的本地错误,而它应该只打印出 else 子句中的语句?
【问题讨论】:
-
minimal reproducible example。这是在不同的功能中吗?
-
不,这个错误发生在一个函数中。
-
对于
if key:,您不会询问变量key1是否存在。您假设变量存在并询问它是否具有 truthy 值。
标签: python