参数的几种类型
- 位置参数
- 默认值参数:默认值参数必须放在普通参数后面,
- 命名参数
def test01(a,b,c,d):
print('{0}-{1}-{2}-{3}'.format(a,b,c,d))
def test02(a,b,c=10,d=15):#默认值参数必须位于其他参数后面
print('{0}-{1}-{2}-{3}'.format(a,b,c,d))
print('--------位置参数-----------')
test01(10,20,30,40) #位置参数
# test01(10,20) 参数个数不匹配时,报错
print('-------命名参数----------')
test01(a=10,d=20,c=40,b=50) #命名参数,通过形参名字匹配
print('-------默认值参数----------')
test02(2,3) #默认参数
test02(2,3,4)
可变参数
指可变数量的参数
- *参数:将多个参数收集到一个“元组”对象中
- **参数:将多个参数收集到一个“字典”对象中
- 强制命名参数
在带 “*” 的“可变参数”后面增加新的参数,必须在调用的时候“强制命名参数”
def f1(a,b,*c):
print(a,b,c)
def f2(a,b,*c,**d):
print(a,b,c,d)
def f3(*a,b,c):
print(a,b,c)
f1(8,9,19,20)
f2(4,5,6,4,6,3,name='高琪',age=18)
f3(4,52,b=10,c=20)
lambda表达式
lambda语句只包含一个表达式,不包含复杂语句,表达式的计算结果即为函数的返回值
语法:
lambda 参数1,参数2,参数3,…:表达式
f = lambda a,b,c:a+b+c
print(f)
print(f(2,3,4))
def test01(a,b,c):
return a+b+c
g = [lambda a:a*2,lambda b:b*3,lambda c:c*4]
print(g[0](6),g[1](7),g[2](9))
eval()表达式
将字符串当做语句来执行
s = "print('abdce')"
eval(s)
a = 10
b = 20
c = eval('a+b')
print(c)
dict1 = dict(a=100,b=200)
d = eval('a+b',dict1)
print(d)
版权声明:本文为Lyfyh1314原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。