Pycharm 2016.2警告我"本地变量'消息'价值未被使用"在if
区块。
为什么会这样?
def build_message(result, action, data, time_stamp, error_message=None, path=None, line=None):
"""
Result message format:
Success message format: {'result', 'action', 'target', 'data:{...}', 'timestamp'}
Failure message format: {'result', 'action', 'error_message', 'path', 'linenumber', 'timestamp', 'data:{}'}
"""
if result == 'success':
# *** I'm getting warning on this one
message = {'result': result, 'action': action, 'target': path.strip('\''),
'timestamp': datetime.datetime.strptime(time_stamp, '%Y/%m/%d %H-%M-%S.%f'), 'data': data}
else:
message = {'result': result, 'action': action, 'error_message': error_message,
'target': path, 'linenum': line,
'timestamp': datetime.datetime.strptime(time_stamp, '%Y/%m/%d %H-%M-%S.%f'), 'data': data}
try:
return True, json.dumps(message)
except (ValueError, TypeError) as json_error:
return False, json_error.message
由于
答案 0 :(得分:4)
您的try
子句位于else
分支下,因此永远不会使用message
分支下的if
变量。
你想要实现的目标可能是
if result == 'success':
# *** I'm getting warning on this one
message = {'result': result, 'action': action, 'target': path.strip('\''),
'timestamp': datetime.datetime.strptime(time_stamp, '%Y/%m/%d %H-%M-%S.%f'), 'data': data}
else:
message = {'result': result, 'action': action, 'error_message': error_message,
'target': path, 'linenum': line,
'timestamp': datetime.datetime.strptime(time_stamp, '%Y/%m/%d %H-%M-%S.%f'), 'data': data}
try:
return True, json.dumps(message)
except (ValueError, TypeError) as json_error:
return False, json_error.message
但是你需要在message
之前初始化if-else
变量,否则在分配之前会出现使用变量的错误
message = ""
if ...
...
else
...