python---函式定義

zxyhhjs2017發表於2018-04-30

Python新手入門,在python中函式定義主要有四種方式:

① F(arg1,arg2,...),最常見的定義方式,一個函式可以定義任何個引數,每個引數間用逗號分割,用這種引數在呼叫的時候必須在函式名後面的小括號中提供個數相等的值(實參),並且順序必須相同,形參與實參一一對應

1
2
def a(x,y):
  print x,y

呼叫a函式,a(1,2)則x=1,y=2,如果a(1)或者a(1,2,3)則會出錯

② F(arg1,arg2=value2,...agrN=valueN),則將為函式提供預設值。

1
2
def a(x,y=3):
  print x,y

呼叫該函式,a(1,2)則x=1,y=2,如果a(1)不會導致錯誤,此時x=1,y=3,y值將使用預設值,a(y=4,x=2)同理

可變引數:

③ F(*arg1),以一個*加形參的方式來表示函式的實參個數不確定,引數個數>=0,採用這樣的方式定義函式,在函式內部將以實參名的方式構建一個元組(tuple)

1
2
3
4
5
6
7
8
9
10
11
12
def a(*x): 
  # 定義一個名為x的元組
 
def a(*t): 
  print x
 
>>>a(1)
(1,)
>>>a()
None
>>>a(1,2,3)
(1,2,3)

遍歷該元組(計算總和)的一種方式,此時r定義為一元組:

1
2
3
4
5
def y(*r):
  x = 0
  for t in r:
    x += t
  print x

④ F(**arg)形參名前加2個**表示在函式內部將被存放在以形參名為識別符號的dictionary,這時呼叫將使用arg1=value1,arg2=value2...

1
2
3
4
5
6
7
8
9
def a(**b): 
  print b
 
>>>a()
None
>>>a(x=1,y=2)
{'y':2,'x':1}
#注意遍歷返回的順序與形參位置順序相反
>>>a(1,2) #error

可通過以下方式來獲取預期鍵值對,如果形參是未定義'y'的鍵,將返回None

1
2
3
4
5
6
7
8
9
def a(**x): 
  print x.get('y')
 
>>>a(x=1,y=2)
2
>>>a(x=1)
None
>>>a(x=1,b=2)
None

Python引數呼叫過程按照以上四種方法優先順序依次降低。

①方式解析,然後是②中的arg=value方式,再分別按照③>④優先順序傳參

這是自己第一份通過Blog整理的學習筆記,希望對自己,對瀏覽至此的各位朋友有所幫助,以上函式命名不符合規範,僅用於簡單標識說明,使用python 2.6.2

希望本文所述對大家的Python程式設計有所幫助。

轉載:http://www.jb51.net/article/64345.htm

相關文章