Pylint 显示函数中的所有 return 语句都应该 return 表达式错误
Pylint is showing error all return statements in a function should return an expression
我有3个功能。 invalid_response,valid_response,lambda_handler
- 我在 AWS 帐户中正确退出。但是 运行 通过 pylint 我得到错误函数中的所有 return 语句都应该 return 一个表达式,或者它们中的 none 应该。 (不一致-return-陈述)
- 我尝试将所有内容都放入 Lambda_handler 仍然出错
下面是代码
def invalid_response():
response = {
'statusCode': 404,
'body': json.dumps("NA")
}
return response
def valid_response(response):
response = {
'statusCode': 200,
'body': json.dumps(response)
}
return response
def lambda_handler(event, context):
event_value = event['multiValueQueryStringParameters']
if event_value == '' or event_value is None:
aresponse = invalid_response()
return aresponse
if event_value is not None or \
event_value['q'][0] is not None:
event_value_new = event['multiValueQueryStringParameters']['q'][0]
response = read_s3(event_value_new)
if response:
resp = valid_response(response)
else:
resp = invalid_response()
return resp
pylint
很生气,因为您有可能在没有 returning 任何东西的情况下到达函数的末尾,而您 returning 带有条件的值。 Pylint
不喜欢这样,因为它可能导致代码更容易引入错误和崩溃,因为无法处理重新设置的 None
值。
最简洁的响应是在函数末尾添加一些默认响应,以便所有执行分支 return 具有相同类型的值。
def lambda_handler(event, context):
event_value = event['multiValueQueryStringParameters']
if event_value == '' or event_value is None:
aresponse = invalid_response()
return aresponse
if event_value is not None or \
event_value['q'][0] is not None:
event_value_new = event['multiValueQueryStringParameters']['q'][0]
response = read_s3(event_value_new)
if response:
resp = valid_response(response)
else:
resp = invalid_response()
return resp
# it is logically possible to reach this block
return invalid_response()
我有3个功能。 invalid_response,valid_response,lambda_handler
- 我在 AWS 帐户中正确退出。但是 运行 通过 pylint 我得到错误函数中的所有 return 语句都应该 return 一个表达式,或者它们中的 none 应该。 (不一致-return-陈述)
- 我尝试将所有内容都放入 Lambda_handler 仍然出错
下面是代码
def invalid_response():
response = {
'statusCode': 404,
'body': json.dumps("NA")
}
return response
def valid_response(response):
response = {
'statusCode': 200,
'body': json.dumps(response)
}
return response
def lambda_handler(event, context):
event_value = event['multiValueQueryStringParameters']
if event_value == '' or event_value is None:
aresponse = invalid_response()
return aresponse
if event_value is not None or \
event_value['q'][0] is not None:
event_value_new = event['multiValueQueryStringParameters']['q'][0]
response = read_s3(event_value_new)
if response:
resp = valid_response(response)
else:
resp = invalid_response()
return resp
pylint
很生气,因为您有可能在没有 returning 任何东西的情况下到达函数的末尾,而您 returning 带有条件的值。 Pylint
不喜欢这样,因为它可能导致代码更容易引入错误和崩溃,因为无法处理重新设置的 None
值。
最简洁的响应是在函数末尾添加一些默认响应,以便所有执行分支 return 具有相同类型的值。
def lambda_handler(event, context):
event_value = event['multiValueQueryStringParameters']
if event_value == '' or event_value is None:
aresponse = invalid_response()
return aresponse
if event_value is not None or \
event_value['q'][0] is not None:
event_value_new = event['multiValueQueryStringParameters']['q'][0]
response = read_s3(event_value_new)
if response:
resp = valid_response(response)
else:
resp = invalid_response()
return resp
# it is logically possible to reach this block
return invalid_response()