python資料引數 python 的引數總結

2021-10-21 05:49:22 字數 2230 閱讀 8756

一、形參和實參

函式引數的作用是傳遞資料給函式使用

在使用的過程中,引數有兩種形式:形式引數和實際引數

形參:定義函式的引數

實參:呼叫函式時的引數

根據實際引數型別不同,將實際引數傳遞給形參的方式有兩種:值傳遞和引用傳遞

值傳遞:

實參為不可變物件,傳遞給形參後,形參的值改變,實參值不變。(如 fun(a),傳遞的只是 a 的值,沒有影響 a 物件本身,比如在 fun(a) 內部修改 a 的值,只是修改另外乙個賦值的物件,不會影響 a 本身)

引用傳遞:

實參為可變物件,傳遞給形參後,形參的值改變,實參值也會改變(如( fun(la),則是將 la 真正的傳過去,修改後 fun 外部的 la 也會收影響)

# 值傳遞和引用傳遞

def fun(obj):

print(obj)

obj+= 1obj1= "123456"demo(obj1)

print("函式呼叫後 obj1:" +obj1)

obj2= [1 ,2,3]

demo(obj2)

print("函式呼叫後:"+obj2)

# 結果123456函式呼叫後obj1:123456[1, 2, 3]

函式呼叫後obj2:[1, 2, 3, 1, 2, 3]

二、位置引數、關鍵字引數、預設引數、可變引數

1、位置引數(必備引數)

函式呼叫時的數量,位置,引數型別必須和定義的一樣

2、關鍵字引數

函式呼叫時,使用形參的名字 = 輸入的引數值,此時位置可與定義時不一致

3、預設引數

函式定義時,為引數設定乙個預設的值,當函式呼叫時,沒有傳入這個引數值,直接使用這個預設值,

注意:定義函式時,預設引數必須指向不可變引數,如果指向可變物件,多次呼叫,可能時得到的不是意料之內的結果。

# 預設引數必須值相不可變物件,如果指向可變物件,結果不對

def demo1(obj=):

print( obj )

def demo2(obj=none):if obj ==none:

obj=

print(obj)

demo1()

demo1()

demo1()

demo2()

demo2()

demo2()

#結果[1]

[1, 1]

4、可變引數(不定長引數)

可變引數有兩種形式:一種時 *arg, 一種時 ** kwargs

*args :

這種形式表示接受任意多個實際引數將其放到乙個與那組中

**kwargs:

這種形式表示接受任意多個實際引數將其放到乙個字典中,類似關鍵字引數

#可變引數

#*args形式

def demo3(*args):

print"\n i like coffee:"

for i inargs:

print i,

#呼叫形式:可直接傳乙個tuple

demo3('巴西','土耳其')

#也可以通過list或者tuple的變數傳

obj1=['藍山','摩卡','卡布奇諾']

demo3(*obj1)

#**kwargs形式

def person(name, age,**kw):

print'\n name:', name, 'age:', age, 'other:', kw

def demo4(**kwargs):

print"\n name:age"

for i,j inkwargs.items():

print i,':',j

#呼叫:可直接傳乙個字典

person("paul",77,***="male",job="teacher")

#也可以通過字典變數傳

obj2=

demo4(**obj2)

#結果i like coffee:

巴西 土耳其

i like coffee:

藍山 摩卡 卡布奇諾

name: paul age:77 other:

name:age

lily :12mary :23hanmeimei :34

三、引數組合

在 python 中定義函式,可以用必選引數,預設引數,可變引數,關鍵字引數組合使用,但是注意,引數定義的順序必須是:

必選引數、預設引數、可變引數、關鍵字引數

pytho函式星號引數

神奇的星號 傳遞實參和定義形參 所謂實參就是呼叫函式時傳入的引數,形參則是定義函式是定義的引數 的時候,你還可以使用兩個特殊的語法 呼叫函式時使用 test args 的作用其實就是把序列 args 中的每個元素,當作位置引數傳進去。比如上面這個 如果 args 等於 1,2,3 那麼這個 就等價於...

python資料引數 python引數

函式引數 實際引數 位置實參 按順序 函式名 資料1,資料2 序列實參 拆 函式名 序列 關鍵字實參 按名字 函式名 形參名1 資料1,形參名2 資料2 字典實參 拆 函式名 字典 形式引數 限制實參傳遞方式 預設形參 可選 def 函式名 形參名1 資料1,形參名2 資料2 位置形參 必填 def...

python資料引數化

pytest資料引數化 資料寫入到.py檔案中 引數化方法使用 在乙個方法或者函式前面新增下方的標記 pytest.mark.parametrize argnames,ar alues argnames 要引數化的變數,string 逗號分隔 list,tuple ar alues 引數化的值,li...