Python函数返回值设计
Python函数同时返回错误值和数据怎么设计?
返回元组
def func():
error = None
value = 123
return error, value
def func2():
error, value1 = func()
# balabala
value2 = value1 + 123
return error, value2
返回字典
import json
def func1():
error1 = 'Test Error'
value1 = 456
if error1:
return {'error': error1}
return {'value': value1}
def func2():
result = func1()
if 'error' in result:
return result
error2 = None
value2 = 789 + result['value']
if error2:
return {'error': error2}
return {'value': value2}
def func3():
result = func2()
return json.dumps(result)
返回字典的好处:
- 字典容纳的数据类型更加丰富,方便保持前向兼容
- 返回的数据方便序列化成Json格式
- 在函数调用链中,对于错误的判断保持统一的风格
定义自己的Result类
class Error(object):
SUCCESS = 0
FAIL = 1
class Result(object):
def __init__(self, error=0, value=None, msg=None):
self.error = error
self.error_msg = msg
self.value = value
def func1():
return Result(error=Error.FAIL, value='Failed Value')
def func2():
result = func1()
if result.error != Error.SUCCESS:
return result
return Result(error=Error.SUCCESS, value='Success Value')
返回Result对象的好处:
- 可以根据需要自定义数据结构,所有函数返回固定的数据结构
- 返回信息里面可以包含错误码,错误信息,Value等多个内容
本文由 络壳 原创或整理,转载请注明出处