一、Optional:可選參數的使用
在Python中,我們經常需要定義函數時,會需要一些參數是可選的,這個時候我們就需要使用到Optional。Optional[Type]類型可以接受Type類型或者None類型。例如:
from typing import Optional def func(str1: Optional[str], str2: Optional[str]) -> str: if str1 and str2: return str1 + str2 elif str1 and not str2: return str1 elif not str1 and str2: return str2 else: return 'default value'
在這個函數中,我們定義了兩個可選參數str1和str2,並且返回類型為str。如果兩個參數都有值,那麼直接將兩個字符串拼接起來返回;如果只有其中一個有值,那麼返回該參數的值;如果兩個都沒有值,則返回默認值”defalut value”。
在這個例子中,我們可以看到Optional的使用方式,也可以看到對於參數的處理方式和函數的返回值處理方式。
二、Else:控制流中的else語句
在Python的控制流程中,我們經常會使用到if/else語句,但是還有一個比較容易被忽略的語句就是else語句。else語句可以配合循環語句,判斷循環語句是否被執行完畢。
for i in range(10): if i > 5: break else: print("Loop Finished")
在這個例子中,我們定義了一個循環語句,循環次數為10次,當i大於5時,跳出循環,並且打印”Loop Finished”,這裡的else語句被稱為循環else,其實是和for語句對應的,只有在全部循環結束之後才會執行,如果循環被break中斷了,則不會執行。
三、Optional或Else的結合使用
Optional和Else的結合使用在Python中非常常見,尤其是在處理請求參數時經常使用。我們可以通過if not xxx else yyy這樣的語句判斷參數值是否為空,如下所示:
from fastapi import FastAPI from typing import Optional app = FastAPI() @app.get("/") async def read_item(q: Optional[str] = None): return {"q": q if q is not None else "default value"}
在這個例子中,我們使用了FastAPI框架,定義了一個GET方法,並且定義了一個可選參數q。如果q參數值不為空,則返回q的值,否則返回”defalut value”值。
可以看到,通過Optional和Else的結合使用,可以很簡單地實現對參數的判斷和返回。
四、總結
Optional和Else是Python語言中非常常見的兩個關鍵字,他們可以分別用來定義可選參數和控制流程,也可以結合使用,用來處理請求參數。在代碼編寫中,熟練掌握這兩個關鍵字的使用,可以使代碼更加簡單易讀,同時提高代碼的可維護性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/183680.html