python 形参_python中参数总结
一、形參和實參
函數(shù)參數(shù)的作用是傳遞數(shù)據(jù)給函數(shù)使用。
在使用的過程中,參數(shù)有兩種形式:形式參數(shù)和實際參數(shù)
形參:定義函數(shù)時的參數(shù)
實參:調(diào)用函數(shù)時的參數(shù)
根據(jù)實際參數(shù)類型不同,將實際參數(shù)傳遞給形參的方式有兩種:值傳遞和引用傳遞
值傳遞:實參為不可變對象,傳遞給形參后,形參的值改變,實參值不變。如fun(a),傳遞的只是a的值,沒有影響a對象本身。比如在 fun(a)內(nèi)部修改 a 的值,只是修改另一個復(fù)制的對象,不會影響 a 本身。
引用傳遞:實參為可變對象,傳遞給形參后,形參的值改變,實參值改變。如 fun(la),則是將 la 真正的傳過去,修改后fun外部的la也會受影響
#值傳遞與引用傳遞
defdemo(obj):printobj
obj+=obj
obj1="123456"demo(obj1)print "函數(shù)調(diào)用后obj1:"+obj1
obj2=[1,2,3]
demo(obj2)print "函數(shù)調(diào)用后obj2:"+str(obj2)#結(jié)果
123456函數(shù)調(diào)用后obj1:123456[1, 2, 3]
函數(shù)調(diào)用后obj2:[1, 2, 3, 1, 2, 3]
二、位置參數(shù)、關(guān)鍵字參數(shù)、默認參數(shù)、可變參數(shù)
1.位置參數(shù)(必備參數(shù))
函數(shù)調(diào)用時的數(shù)量,位置,參數(shù)類型必須和定義時的一致。
2.關(guān)鍵字參數(shù)
函數(shù)調(diào)用時,使用形參的名字=輸入的參數(shù)值,此時位置可與定義時不一致。
3.默認參數(shù)
函數(shù)定義時,為參數(shù)設(shè)置一個默認值,當(dāng)函數(shù)調(diào)用時,沒有傳入這個參數(shù)值,直接使用這個默認值。注意:
定義函數(shù)時,默認參數(shù)必須指向不可變對象;如果指向可變對象,多次調(diào)用,可能得到的不是意料之內(nèi)的結(jié)果。
#默認參數(shù)必須指向不可變對象,如果指向可變對象,結(jié)果不對
def demo1(obj=[]):printobj
obj.append(1)def demo2(obj=None):if obj==None:
obj=[]printobj
obj.append(1)
demo1()
demo1()
demo1()
demo2()
demo2()
demo2()#結(jié)果
[]
[1]
[1, 1]
[]
[]
[]
4.可變參數(shù)(不定長參數(shù))
可變參數(shù)有兩種形式:一種是*args,另一種是**kwargs
*args:這種形式表示接受任意多個實際參數(shù)將其放到一個元組中。
**kwargs:這種形式表示接受任意多個實際參數(shù)將其放到一個字典中,類似關(guān)鍵字參數(shù)
#可變參數(shù)#*args形式
def demo3(*args):print "\n I like coffee:"
for i inargs:printi,#調(diào)用形式:可直接傳一個tuple
demo3('巴西','土耳其')#也可以通過list或者tuple的變量傳
obj1=['藍山','摩卡','卡布奇諾']
demo3(*obj1)#**kwargs形式
def person(name, age, **kw):print'\n name:', name, 'age:', age, 'other:', kwdef demo4(**kwargs):print "\n name:age"
for i,j inkwargs.items():print i,':',j#調(diào)用:可直接傳一個字典
person("Paul",77,sex="male",job="teacher")#也可以通過字典變量傳
obj2={'Mary':23,'HanMeiMei':34,'Lily':12}
demo4(**obj2)#結(jié)果
I like coffee:
巴西 土耳其
I like coffee:
藍山 摩卡 卡布奇諾
name: Paul age:77 other: {'job': 'teacher', 'sex': 'male'}
name:age
Lily :12Mary :23HanMeiMei :34
三、參數(shù)組合
在Python中定義函數(shù),可以用必選參數(shù)、默認參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)組合使用。但是注意,參數(shù)定義的順序必須是:必選參數(shù)、默認參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)。
總結(jié)
以上是生活随笔為你收集整理的python 形参_python中参数总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么龙虎榜有西藏的就害怕呢?
- 下一篇: python怎么下载安装mac_Mac下