参数匹配
参数匹配有顺序匹配和指定匹配两种方式
def func(a,b,c):
print(a,b,c)
func(1,2,3)
func(a=3,b=1,c=2)
定义不确定数量的自变量
def func(*a):
return sum(a)/len(a)
res=func(2,3,4,5)
print(res)
可以用*进行解包,然后用元组传递变量
lambda匿名函数
lambda函数可以不用定义函数名称,所以在某些情境下,所得表达式可以更加简洁
res=lambda x,y:x+y
print(res(1,2))
f=lambda name,age:print('hello','{}! age: {}'.format(name,age))
f('geep','24')
代理执行
代理执行可以使得参数的传递在某些场景下更加的方便,使代码更加简洁
def func(*a):
return sum(a)/len(a)
action=func
print(action(1,4))
例如,在多重条件语句下,其非常适用
def ave_(*a):
return sum(a)/len(a)
def add_(*a):
return sum(a)
def count_(*a):
return len(a)
a=(1,2,3,4,5,6)
i=len(a)
if i>5:
action=ave_
elif i==5:
action=add_
else:
action=count_
print(action(*a))