不常用到引數匹配的全部功能,容易忘掉,做個筆記總結一下,備查:
引數匹配模型:位置引數,關鍵字引數,預設引數,可變引數(字元 * )開頭,可變引數解包,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...