python傳遞參數(shù)方式小結(jié)
本文實(shí)例總結(jié)了python傳遞參數(shù)方式。分享給大家供大家參考。具體分析如下:
當(dāng)形參如*arg時(shí)表示傳入數(shù)組,當(dāng)形參如**args時(shí)表示傳入字典。
def myprint(*commends,**map):
for comm in commends:
print comm
for key in map.keys():
print key,map[key]
myprint("hello","word",username="tian",name="wei")
輸出:
hello word username tian name wei
python中定義一個(gè)函數(shù),可以通過(guò)正常的只傳入值或key-value的方法調(diào)用。但是如果第一個(gè)時(shí)參數(shù)傳入的是key-value的方法,那么后面的必須都是key-value方法,如果第一個(gè)不是,那么后面的可以根據(jù)情況再傳入值就可以了。
例子如下:
def parrot(voltage="fff",state='a stiff',action='voom',type='Norwegian Blue'):
print "-- This parrot wouldn't", action,
print "if you put", voltage, "volts through it."
print "-- Lovely plumage, the", type
print "-- It's", state, "!"
parrot(1000)#可以
parrot(action = 'VOOOOOM', voltage = 1000000)
#可以,都是key-value方法
parrot('a thousand', state = 'pushing up the daisies')
#可以,第一個(gè)實(shí)參為直接傳入法,后面無(wú)所謂了
parrot('a million', 'bereft of life', 'jump')
#可以,都是傳值,而且由于形參都有默認(rèn)值,則按順序一個(gè)個(gè)替換
parrot(voltage="33","ff","abc")
# 不可以,第一個(gè)為Key-value傳值法,以后的都必須是
Python新手入門,在python中函式定義主要有四種方式:
① F(arg1,arg2,...),最常見的定義方式,一個(gè)函式可以定義任何個(gè)參數(shù),每個(gè)參數(shù)間用逗號(hào)分割,用這種參數(shù)在調(diào)用的時(shí)候必須在函式名后面的小括號(hào)中提供個(gè)數(shù)相等的值(實(shí)參),并且順序必須相同,形參與實(shí)參一一對(duì)應(yīng)
def a(x,y): print x,y
調(diào)用a函式,a(1,2)則x=1,y=2,如果a(1)或者a(1,2,3)則會(huì)出錯(cuò)
② F(arg1,arg2=value2,...agrN=valueN),則將為函式提供默認(rèn)值。
def a(x,y=3): print x,y
調(diào)用該函式,a(1,2)則x=1,y=2,如果a(1)不會(huì)導(dǎo)致錯(cuò)誤,此時(shí)x=1,y=3,y值將使用默認(rèn)值,a(y=4,x=2)同理
可變參數(shù):
③ F(*arg1),以一個(gè)*加形參的方式來(lái)表示函式的實(shí)參個(gè)數(shù)不確定,參數(shù)個(gè)數(shù)>=0,采用這樣的方式定義函式,在函式內(nèi)部將以實(shí)參名的方式構(gòu)建一個(gè)元組(tuple)
def a(*x): # 定義一個(gè)名為x的元組 def a(*t): print x >>>a(1) (1,) >>>a() None >>>a(1,2,3) (1,2,3)
遍歷該元組(計(jì)算總和)的一種方式,此時(shí)r定義為一元組:
def y(*r):
x = 0
for t in r:
x += t
print x
④ F(**arg)形參名前加2個(gè)**表示在函式內(nèi)部將被存放在以形參名為標(biāo)識(shí)符的dictionary,這時(shí)調(diào)用將使用arg1=value1,arg2=value2...
def a(**b):
print b
>>>a()
None
>>>a(x=1,y=2)
{'y':2,'x':1}
#注意遍歷返回的順序與形參位置順序相反
>>>a(1,2) #error
可通過(guò)以下方式來(lái)獲取預(yù)期鍵值對(duì),如果形參是未定義'y'的鍵,將返回None
def a(**x):
print x.get('y')
>>>a(x=1,y=2)
2
>>>a(x=1)
None
>>>a(x=1,b=2)
None
Python參數(shù)調(diào)用過(guò)程按照以上四種方法優(yōu)先級(jí)依次降低。
①方式解析,然后是②中的arg=value方式,再分別按照③>④優(yōu)先級(jí)傳參
這是自己第一份通過(guò)Blog整理的學(xué)習(xí)筆記,希望對(duì)自己,對(duì)瀏覽至此的各位朋友有所幫助,以上函式命名不符合規(guī)范,僅用于簡(jiǎn)單標(biāo)識(shí)說(shuō)明,使用python 2.6.2
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
不管你的Python報(bào)什么錯(cuò),用這個(gè)模塊就能正常運(yùn)行
說(shuō)到python強(qiáng)大的地方,那真是太多了,優(yōu)雅、簡(jiǎn)潔、豐富且強(qiáng)大的第三方庫(kù),開發(fā)速度快,活躍度高等,本文講到的就是其中一個(gè)模塊,用了它,再也不用擔(dān)心代碼不能運(yùn)行了2018-09-09
Python圖像處理庫(kù)PIL的ImageEnhance模塊使用介紹
這篇文章主要介紹了Python圖像處理庫(kù)PIL的ImageEnhance模塊使用介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
[項(xiàng)目布局配置]Nosql與PythonWeb-Flask框架組合
本文主要描述了怎樣使用輕量級(jí)NoSQL數(shù)據(jù)庫(kù)與PythonWeb-Flask框架組合來(lái)進(jìn)行項(xiàng)目布局及應(yīng)用配置,需要的同學(xué)可以參考下,希望可以對(duì)大家有所進(jìn)益2021-08-08
對(duì)python判斷是否回文數(shù)的實(shí)例詳解
今天小編就為大家分享一篇對(duì)python判斷是否回文數(shù)的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
python如何實(shí)現(xiàn)復(fù)制目錄到指定目錄
這篇文章主要為大家介紹了python如何實(shí)現(xiàn)復(fù)制目錄到指定目錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
python調(diào)用jenkinsAPI構(gòu)建jenkins,并傳遞參數(shù)的示例
這篇文章主要介紹了python調(diào)用jenkinsAPI構(gòu)建jenkins,并傳遞參數(shù)的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-12-12
Python定義函數(shù)時(shí)參數(shù)有默認(rèn)值問(wèn)題解決
這篇文章主要介紹了Python定義函數(shù)時(shí)參數(shù)有默認(rèn)值問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12

