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'}