天天看點

function

function

def

function name

()

function body

return     #函數中,一旦執行了return,則函數的執行過程立即終止。function有一個預設的retrun值: None

def sendmail():

1. 普通參數

2. 預設參數(對形式參數設定一個預設值,預設參數隻能放在參數清單的後面,可以有多個)

3. 指定參數

4. 動态參數:

*: 預設将傳入的參數,全部放到一個tuple中

**:預設将傳入的參數,全部放入字典中

萬能參數: *args,**kwargs

def f1(*xargs):

    print(args,type(args))    #輸出的是一個tuple

f1(11,22,"aa","bb")

li = ["abc",12,33,"def",45]

f1(li,"ghi")

f1(li)

(["abc",12,33,"def",45],)

f1(*li)                                   #對比傳參的時候加*與不加*:不加,會把清單作為一個整體傳入;加*,會把清單中的每一個元素分别傳入

("abc",12,33,"def",45)

li="abcd"

f1(*li)

("a","b","c","d")

>>> def f1(**args):

...   print(args,type(args))        #輸出是一個字典

...

>>> f1(n1="abc",n2=18)    #相當于指定參數,**的參數隻能用k1="v1",k2="v2"這種方式傳參

({'n1': 'abc', 'n2': 18}, <type 'dict'>)

>>> dic = {"k1":"v1","k2":"v2"}

>>> f1(kk=dic)

({'kk': {'k2': 'v2', 'k1': 'v1'}}, <type 'dict'>)

>>> f1(**dic)

({'k2': 'v2', 'k1': 'v1'}, <type 'dict'>)

>>> f1(dic)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: f1() takes exactly 0 arguments (1 given)

>>>

萬能參數:

>>> def f1(*args,**kwargs):

...   print(args)

...   print(kwargs)

>>> f1(11,22,33,44,k1="v1",k2="v2")   #會把前面的傳給*args,後面的傳給**kwargs

(11, 22, 33, 44)

{'k2': 'v2', 'k1': 'v1'}

下一篇: function*

繼續閱讀