Python中函式的引數傳遞與可變長引數

2021-09-07 20:23:55 字數 1771 閱讀 7219

**旭東的部落格原文 python中函式的引數傳遞與可變長引數

python中傳遞引數有以下幾種型別:

(1)像c++一樣的預設預設函式

(2)根據引數名傳引數

(3)可變長度引數

示例如下:

(1)預設引數

1 def foo(text,num=0):

2 printtext,num 3 4 foo("asd") #asd 0 5 foo("def",100) #def 100

(2)引數名傳遞方式

1 deffoo(ip,port):

2 print "%s:%d" %(ip,port) 3 4 foo("192.168.1.0",3306) #192.168.1.0:3306 5 foo(port=8080,ip="127.0.0.1") #127.0.0.1:8080

(3)可變長度引數

#

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

")

上面函式中的引數,tuplearg前面「*」表示這個引數是乙個元組引數,從程式的輸出可以看出,預設值為();dicrtarg前面有「**」表示這個字典引數(鍵值對引數)。可以把tuplearg、dictarg看成兩個預設引數。多餘的非關鍵字引數,函式呼叫時被放在元組引數tuplearg中;多餘的關鍵字引數,函式呼叫時被放字典引數dictarg中。

下面是可變長引數的一些用法:

#

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=

foo(

"formal_args

",arg2="

argsecond

",a=1)

print"*

"*40foo(123,mylist,mydict)

print"*

"*40foo(123,rt=123,*mylist,**mydict)

Python中函式引數的傳遞

python中函式引數的傳遞是通過 賦值 來傳遞的。但這條規則只回答了函式引數傳遞的 戰略問題 並沒有回答 戰術問題 也就說沒有回答怎麼賦值的問題。函式引數的使用可以分為兩個方面,一是函式引數如何定義,二是函式在呼叫時的引數如何解析的。而後者又是由前者決定的。函式引數的定義有四種形式 1.f arg...

python中函式引數的傳遞

實際引數按照前後順序依次賦值給形式引數。def party area,person print 晚上聚會 print 地點 area print 參與人員 person print 有了酒,就有了故事.party 皇家一號 全體人員 函式宣告定義時,可以給某個引數設定預設資料,在呼叫執行時 有預設資...

Python函式中的引數傳遞

函式的引數 1 函式的引數是可選的 2 函式需要處理的資料應該通過引數來傳遞 3 函式名後面括號裡的引數被稱為形參,由於它不是實際存在的引數所以又稱虛擬引數 4 呼叫函式時後面括號裡的引數稱為實參 def create fib n fib list 0 1 for i in range n 2 re...