1. 程式人生 > >Python2語法簡記(7):函式

Python2語法簡記(7):函式

7 函式:def printme(str1, str2):

def printme(str1, str2):
    "列印傳入的字串"         # 函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。    
    print str1, str2    
    return str1, str2          # return只能返回一個值,可以是任何型別。寫成這樣是返回一個元祖,間接實現了返回多個值。

不可變物件傳入函式:不能改變物件值

def ChangeInt(a):   # 呼叫函式剛開始時,id(a) == id(b),a引用的是數字2物件。
    a = 10            # 由於a引用的是不可變物件,所以這時候a改為了引用數字10物件。id(a) != id(b)
b = 2
ChangeInt(b)
print b               # 結果是 2。b還是引用數字2物件。

引數傳入方式:順序傳入、關鍵字傳入、預設引數傳入、不定長引數def printme(str1, *vartuple)
順序傳入:

def Printme(a):
    print a     
Printme(2)

關鍵字傳入:

def Printme(a, b):
    print a    
    print b        
Printme(b = 2, a = 1)

預設引數傳入:

def Printme(a, b = 0):
    print a
    print b   
Printme(a = 2)
Printme(4)
Printme(4, 5)

不定長引數:

def Printme(a, *vartuple):
    print a
    for var in vartuple: print var       
Printme(4, 5, 6,7)

匿名函式:lambda表示式:sum = lambda arg1, agr2 : arg1 + arg2; print sum(10, 20)
python 使用 lambda表示式 來建立匿名函式。只包含一個語句。不能訪問自有引數列表之外或全域性名稱空間裡的引數。

sum = lambda arg1, arg2: arg1 + arg2;
print "相加後的值為 : ", sum( 10, 20 )
print "相加後的值為 : ", sum( 20, 20 )