新聞中心
python中的函數(shù)非常多,大多數(shù)運(yùn)行后,結(jié)束時都需要返回??梢哉f,返回函數(shù)是學(xué)好python必備的函數(shù)。今天就來講講python中的返回函數(shù)吧。

目前成都創(chuàng)新互聯(lián)公司已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、承德網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
Python 函數(shù)通過調(diào)用 return 語句來返回結(jié)果。使用 returnvalue 可以返回單個值,用 returnvalue1,value2 則能讓函數(shù)同時返回多個值。
如果一個函數(shù)體內(nèi)沒有任何 return 語句,那么這個函數(shù)的返回值默認(rèn)為 None。除了通過 return 語句返回內(nèi)容,在函數(shù)內(nèi)還可以使用拋出異常(raise Exception)的方式來“返回結(jié)果”。
接下來,我將列舉一些與函數(shù)返回相關(guān)的常用編程建議。
編程建議
1.單個函數(shù)不要返回多種類型
Python 語言非常靈活,我們能用它輕松完成一些在其他語言里很難做到的事情。比如:讓一個函數(shù)同時返回不同類型的結(jié)果。從而實現(xiàn)一種看起來非常實用的“多功能函數(shù)”。
就像下面這樣:
def get_users(user_id=None): if user_id is None: return User.get(user_id) else: return User.filter(is_active=True) # 返回單個用戶 get_users(user_id=1) # 返回多個用戶 get_users()
2.使用 partial 構(gòu)造新函數(shù)
假設(shè)這么一個場景,在你的代碼里有一個參數(shù)很多的函數(shù) A,適用性很強(qiáng)。而另一個函數(shù) B 則是完全通過調(diào)用 A 來完成工作,是一種類似快捷方式的存在。
比方在這個例子里, double 函數(shù)就是完全通過 multiply 來完成計算的:
def multiply(x, y): return x * y def double(value): # 返回另一個函數(shù)調(diào)用結(jié)果 return multiply(2, value)
3.拋出異常,而不是返回結(jié)果與錯誤
我在前面提過,Python 里的函數(shù)可以返回多個值?;谶@個能力,我們可以編寫一類特殊的函數(shù):同時返回結(jié)果與錯誤信息的函數(shù)。
def create_item(name):
if len(name) > MAX_LENGTH_OF_NAME:
return None, 'name of item is too long'
if len(CURRENT_ITEMS) > MAX_ITEMS_QUOTA:
return None, 'items is full'
return Item(name=name), ''
def create_from_input():
name = input()
item, err_msg = create_item(name)
if err_msg:
print(f'create item failed: {err_msg}')
else:
print(f'item<{name}> created')4.謹(jǐn)慎使用 None 返回值
None 值通常被用來表示“某個應(yīng)該存在但是缺失的東西”,它在 Python 里是獨(dú)一無二的存在。很多編程語言里都有與 None 類似的設(shè)計,比如 JavaScript 里的 null、Go 里的 nil 等。因為 None 所擁有的獨(dú)特 虛無 氣質(zhì),它經(jīng)常被作為函數(shù)返回值使用。
以上就是python中返回函數(shù)的使用。更多Python學(xué)習(xí)推薦:PyThon學(xué)習(xí)網(wǎng)教學(xué)中心。
文章名稱:創(chuàng)新互聯(lián)Python教程:如何使用python中的返回函數(shù)?
網(wǎng)頁路徑:http://www.dlmjj.cn/article/cdhoije.html


咨詢
建站咨詢
