05,函数的参数
函数参数分类:
1、按照函数的不同阶段可分为:形参、实参
"""
形参
在函数定义阶段 括号内写的变量名 叫函数的形式参数 简称 形参
实参
在函数调用阶段 括号内传入的值 叫函数的实际参数 简称 实参
"""
另外形参、实参又可以分为:位置参数、关键字参数、默认参数、可变长参数
# 位置参数
def my_max(a,b): if a >= b: return a return b res = my_max(1,10) # a,b 为位置形参、1,10为位置实参,函数调用时有几个位置形参 就必须传几个位置实参 # 关键字参数 def register(name,age,hobby): print('%s|%s|%s'%(name,age,hobby)) register(name='egon',age='84',hobby='DBJ') # 指名道姓的传 register(age='84',hobby='DBJ',name='egon') # 指名道姓的传 无需考虑顺序问题 register('18','read',hobby='jason') ## 位置参数必须写在关键字参数的前面!!! #默认参数 def register(name,age,gender='male'): print('%s|%s|%s' % (name, age, gender)) register('tank','96') # 没有指定就用默认的 register('gaolaoshi','18',gender='female') # 用户指定了就用指定的 #可变长参数 def func(a,b,*xxx): print('a:',a) print('b:',b) print('c:',xxx) func(1,2,3,4,5,6,7,8)
========================
a: 1
b: 2
c: (3, 4, 5, 6, 7, 8)
#*号在形参中定义 调用函数传递实参的时候*号会接收多余的位置参数 并打包成一个元祖的形式 赋值给*号后面的变量名 def func(a,b,**yyy): print('a:',a) print('b:',b) print('c:',yyy) func(b=1,a=2,c=3,d=4,e=5,f=6,g=7,t=8,o=9) # **号在函数定义阶段作为形参 函数调用阶段按照关键字的形式的多余的关键字参数**会全部接收 并且按照k:v的形式组织成字典 赋值给**后面的变量名 def func(*args,**kwargs): print(args) print(kwargs) print('我被执行了') func(1,2,3,4,5,6,7,name='jason') # 该函数无论给这个函数传递多少位置参数 和关键字参数 都能够正常执行 # 传参的时候 越短的越靠前 越长的越靠后!!!!

浙公网安备 33010602011771号