一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python中函數(shù)的參數(shù)傳遞與可變長參數(shù)介紹

Python中函數(shù)的參數(shù)傳遞與可變長參數(shù)介紹

2020-07-18 11:15腳本之家 Python

這篇文章主要介紹了Python中函數(shù)的參數(shù)傳遞與可變長參數(shù)介紹,本文分別給出多個代碼實例來講解多種多樣的函數(shù)參數(shù),需要的朋友可以參考下

1.Python中也有像C++一樣的默認缺省函數(shù)

 

復制代碼 代碼如下:


def foo(text,num=0):
    print text,num

 

foo("asd")  #asd 0
foo("def",100)  #def 100

 

定義有默認參數(shù)的函數(shù)時,這些默認值參數(shù) 位置必須都在非默認值參數(shù)后面。

調用時提供默認值參數(shù)值時,使用提供的值,否則使用默認值。

2.Python可以根據(jù)參數(shù)名傳參數(shù)

復制代碼 代碼如下:


def foo(ip,port):
    print "%s:%d" % (ip,port)

 

foo("192.168.1.0",3306) #192.168.1.0:3306
foo(port=8080,ip="127.0.0.1")   #127.0.0.1:8080


第4行,沒有指定參數(shù)名,按照順序傳參數(shù)。

 

第5行,指定參數(shù)名,可以按照參數(shù)名稱傳參數(shù)。

3.可變長度參數(shù)

復制代碼 代碼如下:

#coding:utf-8       #設置python文件的編碼為utf-8,這樣就可以寫入中文注釋
def foo(arg1,*tupleArg,**dictArg):
    print "arg1=",arg1  #formal_args
    print "tupleArg=",tupleArg  #()
    print "dictArg=",dictArg    #[]
foo("formal_args")


上面函數(shù)中的參數(shù),tupleArg前面“*”表示這個參數(shù)是一個元組參數(shù),從程序的輸出可以看出,默認值為();dicrtArg前面有“**”表示這個字典參數(shù)(鍵值對參數(shù))??梢园裻upleArg、dictArg看成兩個默認參數(shù)。多余的非關鍵字參數(shù),函數(shù)調用時被放在元組參數(shù)tupleArg中;多余的關鍵字參數(shù),函數(shù)調用時被放字典參數(shù)dictArg中。

 

下面是可變長參數(shù)的一些用法:

復制代碼 代碼如下:


#coding:utf-8       #設置python文件的編碼為utf-8,這樣就可以寫入中文注釋
def foo(arg1,arg2="OK",*tupleArg,**dictArg):
    print "arg1=",arg1
    print "arg2=",arg2
    for i,element in enumerate(tupleArg):
        print "tupleArg %d-->%s" % (i,str(element))
    for  key in dictArg:
        print "dictArg %s-->%s" %(key,dictArg[key])

 

myList=["my1","my2"]
myDict={"name":"Tom","age":22}
foo("formal_args",arg2="argSecond",a=1)
print "*"*40
foo(123,myList,myDict)
print "*"*40
foo(123,rt=123,*myList,**myDict)

 

輸出為:

Python中函數(shù)的參數(shù)傳遞與可變長參數(shù)介紹

從上面的程序可以看出:

(1)如代碼第16行。

   參數(shù)中如果使用“*”元組參數(shù)或者“**”字典參數(shù),這兩種參數(shù)應該放在參數(shù)列表最后。并且“*”元組參數(shù)位于“**”字典參數(shù)之前。

   關鍵字參數(shù)rt=123,因為函數(shù)foo(arg1,arg2="OK",*tupleArg,**dictArg)中沒有rt參數(shù),所以最后也歸到字典參數(shù)中。

(2)如代碼第14行。

  元組對象前面如果不帶“*”、字典對象如果前面不帶“**”,則作為普通的對象傳遞參數(shù)。

  多余的普通參數(shù),在foo(123,myList,myDict)中,123賦給參數(shù)arg1,myList賦給參數(shù)arg2,多余的參數(shù)myDict默認為元組賦給myList。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产亚洲精品高清在线 | 日本不卡免免费观看 | 日本高清色视影www日本 | 亚洲视频在线免费观看 | 高清国产在线 | 黑人好大 | 青青草原影院 | 青青网在线视频 | 蘑菇香蕉茄子绿巨人丝瓜草莓 | 日韩高清一区 | 毛片手机在线视频免费观看 | 7788理论片在线观看 | 美女黑人做受xxxxxⅹ | 秘书小说| 好骚好紧| 456亚洲人成高清在线 | 性色AV乱码一区二区三区视频 | 毛片手机在线视频免费观看 | 2022天堂岛日产 | 特级av毛片免费观看 | 亚洲欧美韩国日产综合在线 | 国产在线成人a | zoz.zzz色 | 日本成人黄色网址 | 成人性生交小说免费看 | 国产nv精品你懂得 | 日本人护士免费xxxx视频 | 午夜久久免费视频 | 四虎影视884aa·com | 456亚洲老头视频 | 免费观看伦理片 | 亚洲一二三区久久五月天婷婷 | 三级无删减高清在线影院 | 日本亚洲免费 | 亚洲娇小性hd | yin乱被cao系列 | 青青久久久国产线免观 | 天天射久久 | 国产99在线| 扒开双腿猛进入爽爽视频ai | 亚洲第一区在线观看 |