参数的几种类型

参数的几种类型

  1. 位置参数
  2. 默认值参数:默认值参数必须放在普通参数后面,
  3. 命名参数
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) 

可变参数

指可变数量的参数

  1. *参数:将多个参数收集到一个“元组”对象中
  2. **参数:将多个参数收集到一个“字典”对象中
  3. 强制命名参数

在带 “*” 的“可变参数”后面增加新的参数,必须在调用的时候“强制命名参数”

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版权协议,转载请附上原文出处链接和本声明。