例子:
1 def t(x,y,z): 2 print(x) 3 print(y) 4 print(z) 5 6 t(1,2,3) #位置参数 与形参一一对应 7 t(2,z=7,y=5) #关键参数 与形参顺序无关,但是关键参数不能写在位置参数前面
实参和形参
实参:实际参数,调用函数时传给函数的参数,可以是常量、变量、表达式、函数,传给形参
形参:形式参数,不占内存空间,形参变量只有在调用时才分配内存单元,目的是函数调用时接收实参
二者区别:
实参:是一个变量,占用内存空间,数据传送单向,实参传给形参,不能形参传给实参
形参:虚拟的,不占用内存空间,形参变量只有被调用时才分配内存单元
2.默认参数
1 def install(t,target=True,port=3306): 2 print(t) 3 print(target) 4 print(port) 5 install(‘acc‘)
默认参数特点:调用函数时,默认参数非必须传送
作用:
(1)默认安装值
(2)默认数据库端口号
3.参数组
1 #参数组 2 def tuple(*args): 3 print(args) 4 5 tuple(1,2,3,4,55) 6 tuple(*[1,2,3,4,5,6]) # args = [1,2,3,4,5,6]
其中*代表:参数个数不固定
*args:接收N个位置参数,然后转换成元组的形式
1 #参数组(2)元组 2 def options(x,*args): 3 print(x) 4 print(args) 5 options(1,2,3,4,5,6,7,8,9)
**kwargs:接收N个关键字参转换成字典的方式
1 #**kwargs 把N个关键字参数转换成字典的方式 2 def dict(**kwargs): 3 print(kwargs[‘name‘]) 4 print(kwargs[‘age‘]) 5 print(kwargs[‘sex‘]) 6 dict(name=‘Msl23‘,age=18,sex=‘M‘) 7 dict(**{‘name‘:‘Msl23‘,‘age‘:18,‘sex‘:‘M‘})
结合:
1 #结合 2 def jiehe(name,**kwargs): 3 print(name) 4 print(kwargs) 5 jiehe(‘Msl23‘,age=18,sex=‘M‘) 6 7 #方式一 8 def fs1(name,age=18,**kwargs): 9 print(name,age,kwargs) 10 fs1(‘alex‘,sex=‘M‘,car=‘house‘) 11 #执行结果: alex 18 {‘sex‘: ‘M‘, ‘car‘: ‘house‘} 12 13 #方式二 14 def fs2(name,age=18,*args,**kwargs): 15 print(name,age,args,kwargs) 16 fs2(‘Msl23‘,18,‘free‘,sex=‘M‘,car=‘house‘) 17 #执行结果: Msl23 18 (‘free‘,) {‘sex‘: ‘M‘, ‘car‘: ‘house‘}
时间: 2024-10-17 12:18:12