wyqwilliam 2019-11-05
‘‘‘ 匿名函数: 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")
f = lambda x, y, z: x + y + z # returns a function that can optionally be assigned a name. def func: