python 引數匹配規則

2021-08-07 16:55:08 字數 971 閱讀 4271

不常用到引數匹配的全部功能,容易忘掉,做個筆記總結一下,備查:

引數匹配模型:位置引數,關鍵字引數,預設引數,可變引數(字元 * )開頭,可變引數解包,keyword-only 引數

函式呼叫時:

func(value), 

func(name=value), 

func(*sequence), 呼叫過程中解包為分開的,單個的引數

func(**dict), 呼叫過程中解包為分開的,單個的引數

函式定義時:

def func(name),  基於位置或者變數名

def func(name=value), 預設引數值

def func(*name), 收集任意的額外不匹配的引數到元組中,

def func(**name), 收集任意的額外不匹配的引數到字典中,

def func(*args, name), *args 之後的 name 引數就是 keyword-only 引數,必須在呼叫中按照關鍵字傳遞

def func(*, name=value), ( python 3.0 ), * 之後的 name 引數就是 keyword-only 引數,必須在呼叫中按照關鍵字傳遞

函式呼叫中,引數必須以下列順序出現:位置引數,關鍵字引數和 *sequence 形式組合,**dict 形式引數

函式定義時,引數必須以下列順序出現:一般引數,預設引數,*name 或者 * 形式引數, name 或者 name=value keyword-only 引數, **name 形式引數

所以,不論是在函式呼叫中,還是在函式定義中,**arg 形式引數都必須出現在最後

python 內部的引數匹配規則:

1. 通過位置分配非關鍵字引數;

2. 匹配關鍵字引數;

3. 其他額外的非關鍵字引數分配到 * name 元組中

4. 其他額外的關鍵字引數分配到 **name 字典中

5. 用預設值分配給在頭部未得到分配的引數

Python中的引數匹配

除了傳統的位置匹配與預設引數外,python還提供了關鍵字匹配可變引數匹配方式。位置匹配與預設引數匹配可以緩和使用,但順序有限制。關鍵字匹配通過引數名匹配,可以改變匹配順序。可變引數匹配適於引數不確定的情況 幾點說明 位置匹配從左至右 函式頭部中 引數將傳入的引數收集到元組,對應於呼叫時多個位置引數...

nginx location匹配規則

location匹配命令 波浪線表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配,不使用正規表示式,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄 進行普通字元精確匹配 定義乙個命名的 location,使用在內部定向時,例如 error pag...

nginx location匹配規則

location匹配命令 波浪線表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄 進行普通字元精確匹配 定義乙個命名的 location,使用在內部定向時,例如 error page,try fil...