如何使用python中的返回函式?

lanyu發表於2021-09-11

python中的函式非常多,大多數執行後,結束時都需要返回。可以說,返回函式是學好python必備的函式。今天就來講講python中的返回函式吧。

Python 函式透過呼叫 return 語句來返回結果。使用 returnvalue 可以返回單個值,用 returnvalue1,value2 則能讓函式同時返回多個值。

如果一個函式體內沒有任何 return 語句,那麼這個函式的返回值預設為 None。除了透過 return 語句返回內容,在函式內還可以使用丟擲異常(raise Exception)的方式來“返回結果”。 

接下來,我將列舉一些與函式返回相關的常用程式設計建議。


程式設計建議

1.單個函式不要返回多種型別

Python 語言非常靈活,我們能用它輕鬆完成一些在其他語言裡很難做到的事情。比如:讓一個函式同時返回不同型別的結果。從而實現一種看起來非常實用的“多功能函式”。

就像下面這樣:


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 構造新函式

假設這麼一個場景,在你的程式碼裡有一個引數很多的函式 A,適用性很強。而另一個函式 B 則是完全透過呼叫 A 來完成工作,是一種類似快捷方式的存在。

比方在這個例子裡, double 函式就是完全透過 multiply 來完成計算的:

def multiply(x, y):
 return x * y
 
def double(value):
 # 返回另一個函式呼叫結果
 return multiply(2, value)


3.丟擲異常,而不是返回結果與錯誤

我在前面提過,Python 裡的函式可以返回多個值。基於這個能力,我們可以編寫一類特殊的函式:同時返回結果與錯誤資訊的函式。

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.謹慎使用 None 返回值

None 值通常被用來表示“某個應該存在但是缺失的東西”,它在 Python 裡是獨一無二的存在。很多程式語言裡都有與 None 類似的設計,比如 JavaScript 裡的 null、Go 裡的 nil 等。因為 None 所擁有的獨特 虛無 氣質,它經常被作為函式返回值使用。

以上就是python中返回函式的使用。更多Python學習推薦:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2035/viewspace-2832396/,如需轉載,請註明出處,否則將追究法律責任。

相關文章