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)
View Code

 

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)
View Code

 

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)
View Code


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])
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM