python 函式多引數
阿新 • • 發佈:2018-12-21
如果用過C語言中的printf()函式,那麼就會對引數傳遞個數可變的意義比較瞭解了。儘管可選引數的機制令函式的引數個數是可變的,但還是有限制的,引數個數有最大的限制,而且還要指明哪些是可選引數。而下面這個機制,可以接受熱議多個引數。
[python] view plaincopyprint?- >>> def MyPrintf(format,*arg):
- format % arg
- >>> MyPrintf("%d is greater than %d",1,2)
>>> def MyPrintf(format,*arg): format % arg >>> MyPrintf("%d is greater than %d",1,2)
其中*arg必須是最後一個引數,*表示接受任意多個引數,除了前面的引數後,多餘的引數都作為一個tuple傳遞給函式,可以通過arg來訪問。還有一種方式來實現任意多個引數的傳遞,就是引數按照dictionary的方式傳遞這個函式,函式同樣可以接受任意多個引數。
[python] view plaincopyprint?- >>> def MyPrint(format,**keyword):
- for k in keyword.keys():
- "keyword[%s] is %s" % (k,keyword[k])
- >>> MyPrint(
>>> def MyPrint(format,**keyword): for k in keyword.keys(): "keyword[%s] is %s" % (k,keyword[k]) >>> MyPrint("ok",One=1,Two=2,Three=3)
同上一種機制,只不過是使用**表示接受任意個數的有名字的引數傳遞,但是呼叫函式時,要指明引數的名字,One=1,Two=2,Three=3,在函式中,可以使用dictionary的方式來操作keyword,其中keys是["One","Two","Three"],value = [1,2,3].還可將兩種機制和在一起。這時*arg要放在**keyword前面函式接收引數的順序,先接收固定引數,然後是可選引數,然後是任意引數,最後是帶名字的任意引數。