最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python下函數(shù)參數(shù)的傳遞(參數(shù)帶星號的說明)

 更新時間:2010年09月19日 21:51:30   作者:  
python中函數(shù)參數(shù)的傳遞是通過賦值來傳遞的。
函數(shù)參數(shù)的使用又有倆個方面值得注意:
1.函數(shù)參數(shù)是如何定義的
2.在調(diào)用函數(shù)的過程中參數(shù)是如何被解析

先看第一個問題,在python中函數(shù)參數(shù)的定義主要有四種方式:
1.F(arg1,arg2,...)
這 是最常見的定義方式,一個函數(shù)可以定義任意個參數(shù),每個參數(shù)間用逗號分割,用這種方式定義的函數(shù)在調(diào)用的的時候也必須在函數(shù)名后的小括號里提供個數(shù)相等的 值(實際參數(shù)),而且順序必須相同,也就是說在這種調(diào)用方式中,形參和實參的個數(shù)必須一致,而且必須一一對應(yīng),也就是說第一個形參對應(yīng)這第一個實參。例 如:
def a(x,y):
print x,y
調(diào)用該函數(shù),a(1,2)則x取1,y取2,形參與實參相對應(yīng),如果a(1)或者a(1,2,3)則會報錯。


2.F(arg1,arg2=value2,...)
這種方式就是第一種的改進版,提供了默認值
def a(x,y=3):
print x,y
調(diào)用該函數(shù),a(1,2)同樣還是x取1,y取2,但是如果a(1),則不會報錯了,這個時候x還是1,y則為默認的3。上面這倆種方式,還可以更換參數(shù)位置,比如a(y=8,x=3)用這種形式也是可以的。


3.F(*arg1)
上 面?zhèn)z個方式是有多少個形參,就傳進去多少個實參,但有時候會不確定有多少個參數(shù),則此時第三種方式就比較有用,它以一個*加上形參名的方式來表示這個函數(shù) 的實參個數(shù)不定,可能為0個也可能為n個。注意一點是,不管有多少個,在函數(shù)內(nèi)部都被存放在以形參名為標識符的tuple中。
>>> def a(*x):
if len(x)==0:
print 'None'
else:
print x
>>> a(1)
(1,) #存放在元組中
>>> a()
None
>>> a(1,2,3)
(1, 2, 3)
>>> a(m=1,y=2,z=3)

Traceback (most recent call last):
File "<pyshell#16>", line 1, in -toplevel-
a(m=1,y=2,z=3)
TypeError: a() got an unexpected keyword argument 'm'


4.F(**arg1)
形參名前加倆個*表示,參數(shù)在函數(shù)內(nèi)部將被存放在以形式名為標識符的dictionary中,這時調(diào)用函數(shù)的方法則需要采用arg1=value1,arg2=value2這樣的形式。
>>> def a(**x):
if len(x)==0:
print 'None'
else:
print x
>>> a()
None
>>> a(x=1,y=2)
{'y': 2, 'x': 1} #存放在字典中
>>> a(1,2) #這種調(diào)用則報錯

Traceback (most recent call last):
File "<pyshell#25>", line 1, in -toplevel-
a(1,2)
TypeError: a() takes exactly 0 arguments (2 given)


上面介紹了四種定義方式,接下來看函數(shù)參數(shù)在調(diào)用過程中是怎么被解析的,其實只要記住上面這四種方法優(yōu)先級依次降低,先1,后2,再3,最后4,也就是先把方式1中的arg解析,然后解析方式2中的arg=value,再解析方式3,即是把多出來的arg這種形式的實參組成個tuple傳進去,最后把剩下的key=value這種形式的實參組成一個dictionary傳給帶倆個星號的形參,也就方式4。
>>> def test(x,y=1,*a,**b):
print x,y,a,b


>>> test(1)
1 1 () {}
>>> test(1,2)
1 2 () {}
>>> test(1,2,3)
1 2 (3,) {}
>>> test(1,2,3,4)
1 2 (3, 4) {}
>>> test(x=1,y=2)
1 2 () {}
>>> test(1,a=2)
1 1 () {'a': 2}
>>> test(1,2,3,a=4)
1 2 (3,) {'a': 4}
>>> test(1,2,3,y=4)

Traceback (most recent call last):
File "<pyshell#52>", line 1, in -toplevel-
test(1,2,3,y=4)
TypeError: test() got multiple values for keyword argument 'y'

相關(guān)文章

  • Python實現(xiàn)求取表格文件某個區(qū)域內(nèi)單元格的最大值

    Python實現(xiàn)求取表格文件某個區(qū)域內(nèi)單元格的最大值

    這篇文章主要介紹基于Python語言,基于Excel表格文件內(nèi)某一列的數(shù)據(jù),計算這一列數(shù)據(jù)在每一個指定數(shù)量的行的范圍內(nèi)(例如每一個4行的范圍內(nèi))的區(qū)間最大值的方法,需要的朋友可以參考下
    2023-08-08
  • Python+ChatGPT制作一個AI實用百寶箱

    Python+ChatGPT制作一個AI實用百寶箱

    ChatGPT最近在互聯(lián)網(wǎng)掀起了一陣熱潮,其高度智能化的功能能夠給我們現(xiàn)實生活帶來諸多的便利。本文就來用Python和ChatGPT制作一個AI實用百寶箱吧
    2023-02-02
  • 在Python中通過threshold創(chuàng)建mask方式

    在Python中通過threshold創(chuàng)建mask方式

    今天小編就為大家分享一篇在Python中通過threshold創(chuàng)建mask方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • matplotlib繪制直方圖的基本配置(萬能模板案例)

    matplotlib繪制直方圖的基本配置(萬能模板案例)

    本文主要介紹了matplotlib繪制直方圖的基本配置(萬能模板案例),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • Python tkinter布局與按鈕間距設(shè)置方式

    Python tkinter布局與按鈕間距設(shè)置方式

    這篇文章主要介紹了Python tkinter布局與按鈕間距設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android基于TCP和URL協(xié)議的網(wǎng)絡(luò)編程示例【附demo源碼下載】

    Android基于TCP和URL協(xié)議的網(wǎng)絡(luò)編程示例【附demo源碼下載】

    這篇文章主要介紹了Android基于TCP和URL協(xié)議的網(wǎng)絡(luò)編程,結(jié)合實例形式分析了Android網(wǎng)絡(luò)編程的通信原理、實現(xiàn)步驟與相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2018-01-01
  • Go語言基于Socket編寫服務(wù)器端與客戶端通信的實例

    Go語言基于Socket編寫服務(wù)器端與客戶端通信的實例

    這篇文章主要介紹了Go語言基于Socket編寫服務(wù)器端與客戶端通信的實例,包括實現(xiàn)基于自定義通訊協(xié)議的Socket通信,需要的朋友可以參考下
    2016-02-02
  • 用Python從0開始實現(xiàn)一個中文拼音輸入法的思路詳解

    用Python從0開始實現(xiàn)一個中文拼音輸入法的思路詳解

    中文輸入法是一個歷史悠久的問題,但也實在是個繁瑣的活,不知道這是不是網(wǎng)上很少有人分享中文拼音輸入法的原因,接下來通過本文給大家分享使用Python從0開始實現(xiàn)一個中文拼音輸入法,需要的朋友可以參考下
    2019-07-07
  • 使用Python的音樂播放器GUI的實現(xiàn)

    使用Python的音樂播放器GUI的實現(xiàn)

    本文主要介紹了使用Python的音樂播放器GUI的實現(xiàn),可以讓您快速輕松地管理和收聽所有音樂文件,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 使用Python生成XML的方法實例

    使用Python生成XML的方法實例

    這篇文章主要介紹了使用Python生成XML的方法,結(jié)合具體實例形式詳細分析了Python生成xml文件的具體流暢與相關(guān)注意事項,需要的朋友可以參考下
    2017-03-03

最新評論

嫩江县| 宁化县| 华亭县| 河西区| 盐边县| 贵南县| 方城县| 泊头市| 台江县| 沧源| 闽侯县| 昌乐县| 青龙| 囊谦县| 岳池县| 亚东县| 连平县| 宜春市| 凤阳县| 铜山县| 托里县| 泰宁县| 西乡县| 花垣县| 安福县| 什邡市| 枣强县| 彭泽县| 吴川市| 辽源市| 阿拉善右旗| 龙游县| 渝中区| 五大连池市| 萨迦县| 岱山县| 南平市| 双柏县| 斗六市| 博兴县| 西丰县|