'''
匿名函数:
lambda
'''
def Add(a,b):
print(a+b)
Add(2,3)
per = lambda a,b:a+b
print(per(2,3))
'''
三目运算
'''
a = 20
print("True") if a >10 else print("False")
'''
匿名函数+三目运算
'''
login = lambda username,password:print('登录成功') if username == 'shenqiang' and password =='123' else print('登录失败')
login('shenqiang','123')
'''
匿名函数,字典的排序
'''
data = lambda **kwargs:dict(sorted(kwargs.items(),key=lambda item:item[0]))
print(data(name='shenqiang',age = 28))
'''函数的内部函数map(),对列表内的同样元素做同样的事情'''
list1 = [1,23,4,5,6]
print(list(map(lambda x:x+100,list1)))
'''函数的内部函数filter(),对列表内的元素进行过滤'''
list2 = [1,2,3,4,5,6]
print(list(filter(lambda a:a>1,list2)))
装饰器
'''
封闭:对已经实现功能的代码尽量不去修改
开放:对现有功能的代码进行拓展
需求:在调用f or f1 先打印getInfo,再打印f
'''
def getInfo(func):
def info():
print("无涯自动化测试")
func()
return info
@getInfo
def f():
print("网易云平台")
@getInfo
def f1():
print("51CTO平台")
f()
'''
步骤:
1.当我们执行getInfo时候,把被装饰的f当作参数传递
2.getInfo函数的返回值会重新赋值
3.一旦结合了装饰器,调用f函数的时候,实际调用了info内部分函数,原来的f1被覆盖
4。被装饰的f重新赋值给装饰器的info
'''
def login(func):
def inner(Token):
if Token == "01293":
return func(Token)
else:
print("登录失败")
return inner
@login
def profile(Token):
print("登录成功")
profile("01293")