Python中使用return返回多个结果
Posted 梧桐一叶知天下秋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中使用return返回多个结果相关的知识,希望对你有一定的参考价值。
在写脚本的时候,因为自己没有充分解耦好每个函数的功能,出现了某个函数要一次返回多个结果的情况。那今天就来说下如果出现了return中需要返回多个结果时要怎么解决吧:
1、封装成对象返回:把多个结果封装成一个对象,直接返回该对象即可。示例:
1 class Result: 2 def __init__(self, result1, result2, result3, result4): 3 self.result1 = result1 4 self.result2 = result2 5 self.result3 = result3 6 self.result4 = result4 7 8 9 def return_results(num1, num2): 10 result1 = num1 + num2 11 result2 = num1 - num2 12 result3 = num1 * num2 13 result4 = num1 / num2 14 # 封装成result对象 15 result = Result(result1, result2, result3, result4) 16 return result 17 18 19 if __name__ == \'__main__\': 20 result = return_results(13, 4) 21 print(result.result1) 22 print(result.result2) 23 print(result.result3) 24 print(result.result4)
2、返回元组:直接在return后写返回的内容,最后拿到的就是一个元组。返回起来方便是真方便,但是觉得代码就不太美观了;而且后续操作直接用序号取值,个人感觉代码可读性也会下降,示例:
1 def return_results(num1, num2): 2 result1 = num1 + num2 3 result2 = num1 - num2 4 result3 = num1 * num2 5 result4 = num1 / num2 6 return result1, result2, result3, result4 7 8 9 if __name__ == \'__main__\': 10 results = return_results(13, 4) 11 print(type(results)) 12 for result in results: 13 print(result)
3、返回列表:以列表的形式返回结果,比起元组,直接在返回的内容前后加上[];不过列表后续可以继续修改返回的结果,元组则不可以,示例:
1 def return_results(num1, num2): 2 result1 = num1 + num2 3 result2 = num1 - num2 4 result3 = num1 * num2 5 result4 = num1 / num2 6 return [result1, result2, result3, result4] 7 8 9 if __name__ == \'__main__\': 10 results = return_results(13, 4) 11 print(type(results)) 12 for result in results: 13 print(result)
4、返回字典:把多个结果封装成字典返回,示例:
1 def return_results(num1, num2): 2 result1 = num1 + num2 3 result2 = num1 - num2 4 result3 = num1 * num2 5 result4 = num1 / num2 6 7 d = dict() 8 d[\'result1\'] = result1 9 d[\'result2\'] = result2 10 d[\'result3\'] = result3 11 d[\'result4\'] = result4 12 return d 13 14 15 if __name__ == \'__main__\': 16 result = return_results(13, 4) 17 print(type(result)) 18 for key in result.keys(): 19 print(result[key])
以上是关于Python中使用return返回多个结果的主要内容,如果未能解决你的问题,请参考以下文章