##函数可以有默认参数,有默认值的参数一定要放在参数的尾部
##动态参数
第一种
def fa(*a):
print(a,type(a)) fa(123,456)输出:
(123, 456) <class 'tuple'>
第二种
def fb(**a): print(a,type(a))fb(k1=123,k2=456)
输出:
{'k1': 123, 'k2': 456} <class 'dict'>第三种
def fc(a,*aa,**aaa):
print(a,type(a)) print(aa,type(aa)) print(aaa,type(aaa))fc(111,222,333,kq=234,ke=763)
输出:
111 <class 'int'>
(222, 333) <class 'tuple'>{'kq': 234, 'ke': 763} <class 'dict'>
#若想将传入的元组、字典作为参数传入后,他们的元素仍然作为参数(元组或字典)的元素,
#而不是一个整体作为元素doc = [90,80,70]fa(doc)fa(*doc)输出:
([90, 80, 70],) <class 'tuple'>
(90, 80, 70) <class 'tuple'>dod = {"uu":'www',"mm":'kkk'}
fb(jj=dod)
fb(**dod)输出:
{'jj': {'uu': 'www', 'mm': 'kkk'}} <class 'dict'>
{'uu': 'www', 'mm': 'kkk'} <class 'dict'>
##函数传递参数时,传递的是一个引用,列表、字典
def fi(arg): arg.append(333)fi(doc)
print(doc)