Python函式的主要引數型別

2021-10-10 20:19:03 字數 2016 閱讀 9358

形式引數(形參)

在定義函式階段定義的引數稱之為形參,相當於變數名

位置形參(普通形參)

位置形參:在函式定義階段,按照從左到右的順序定義

特點:必須被傳值,且實參與形參按照順序一一對應,多乙個少乙個都不行!

def func():

pass

預設形參

預設形參:在函式定義階段,就已經被賦值的引數

def func(x, y=1):

pass

普通收集形參

普通收集形參:用於接收多出部分的位置實參,溢位的部分會被儲存成元組型別,然後賦值給後面的形參接收

def func(x, y, *args):

print(x, y)

print(args)

func(1, 2, 3, 4, 5, 6, 7, 78, 8, 89)

*後的形參名一般定義為args,為約定俗成

關鍵字收集形參

關鍵字收集形參:用於接收多出部分的關鍵字實參,溢位的部分會被儲存成字典型別,然後賦值給後面的形參接收

def func(x, y, **kwargs):

print(x, y)

print(kwargs)

func(a=1, b=2, c=3, x=4, y=5, z=6)

**後的形參名一般定義為kwargs,為約定俗成

命名關鍵字形參

命名關鍵字形參:在函式定義時,*後定義的引數,就是命名關鍵字引數

特點:命名關鍵字實參必須按照key=value的形式為其傳參

def func(x, *, y=2, z):

print(x)

# 其中y和z就是命名關鍵字形參

print(y, z)

func(1, z=3)

實際引數(實參)

在呼叫函式階段定義的引數稱之為實參,相當於變數值

位置實參(普通實參)

位置實參:在函式呼叫階段,按照從左到右的順序依次傳入的值

特點:實參與形參按照順序一一對應

def func(x, y):

print(x + y)

func(1, 2)

關鍵字實參

關鍵字實參:在函式呼叫階段,按照key=value的形式傳入的值

特點:指定給具體的某個形參傳值,可以不按照順序傳值

def func(x, y):

print(x + y)

func(y=1, x=2)

func(x=2, y=1)

*和的使用

*和在函式定義處使用

*:把多餘的普通實參打包成元組

:把多餘的關鍵字實參打包成字典

*和在函式呼叫處使用

*:對元組或列表進行解包

:對字典進行解包

*和同時在函式定義處和呼叫處使用

先解包變成位置形參

再將多餘的位置形參打包

def func(x, y, z):

print(x, y, z)

func([1, 2, 3])

func((1, 2, 3))

func(**)

def func(x, y, z, *args):

print(x, y, z)

print(args)

func(5, 6, 7, *[1, 2, 3])

形參與實參的關係

在呼叫階段,實參會繫結給形參

這種繫結關係只能在函式體內使用

實參與形參的繫結關係只在函式呼叫時生效,函式呼叫結束後解除繫結關係

總結位置實參與關鍵字實參混合使用時,位置實參必須放在關鍵字實參前面(語法規定)

位置形參與預設形參混合使用時,位置形參必須在預設形參的左邊

不能為同一形參重複傳值

預設形參對應的實參可傳可不傳

*args與kwargs混合使用時,*args必須寫在kwargs的前面,否則會報語法錯誤

Python函式的主要引數型別

在定義函式階段定義的引數稱之為形參,相當於變數名 位置形參 在函式定義階段,按照從左到右的順序定義 特點 必須被傳值,且實參與形參按照順序一一對應,多乙個少乙個都不行 def func pass預設形參 在函式定義階段,就已經被賦值的引數 def func x,y 1 pass普通收集形參 用於接收...

Jmail主要引數

下面是乙個忘記密碼時的程式 前一段時間有發過乙個簡單的jmail郵件發郵件的 今天就把這個 做乙個具體的註解,並增加了另外兩個格式的 並舉幾個簡單的例子 首先是jmail.tpmail的核心 set jmail server.createobject jmail.tpmail 建立乙個jmail物件...

tar主要引數

主選項 一條命令以下5個引數只能有乙個 c create 新建乙個壓縮文件,即打包 x extract,get解壓檔案 t list,檢視壓縮文件裡的所有內容 u update 更新原壓縮包中的檔案 輔助選項 z 是否同時具有gzip的屬性?即是否需要用gzip壓縮或解壓?一般格式為 tar.gz或...