---恢复内容开始---
装饰器
装饰器定义:装饰器的本质就是闭包,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能
装饰器的好处:可以在不改变源码的情况下进行添加功能,测试函数的执行效率
装饰器的应用:权限检验的时候,插入日志,性能测试等
例:装饰器中的语法糖
#用装饰器查看一下函数的执行时间 import time #调出一个查看时间的模块 def timmer(f): #先定义一个装饰器的名字 def inner(): start_time = time.time() #起始时间 time.sleep(1) #睡一秒 f() end_time = time.time() #结束时间 print(end_time-start_time) #结束时间-起始时间 return inner @timmer #func=timmer(func) 被装饰的函数=装饰器的名字(被装饰的函数) def func(): print('我是被装饰的函数啦~~~') func()
常用的一些内置函数
内置函数就是python给我提供的一些方法(工具),拿上直接可以用的,例如我们的input(),print(),type(),len()等,
截止python3.6.2版本,一共给我们提供了68个内置函数.
特别的匿名函数
语法:
函数名 = lambda 参数:返回值
注意:
1.函数的参数可以有多个,多个参数之间用逗号隔开
2.匿名函数不管多复杂.只能写一行.且逻辑结束后直接返回数据
3.返回值和正常的函数一样,可以是任意数据类型,但是只能一个,不能返回多个.
匿名函数并不是说一定没有名字,这里前面的变量就是一个函数名,说他是匿名原因是我们通过
name查看的时候是没有名字的.统一都叫做lambda.在调用的时候没有什么特别之处
像正常的函数调用既可
例:
#先上一个不用匿名函数哒 def func(n): return n*n print(func(6)) #结果 36 #其实给lambda就是来定义一个匿名函数的,如果要给它起个名字的话 有点画蛇添足了 f = lambda x:x*x print(f(4)) # 结果 16
排序函数sorted
语法:sorted(iterable,key=None,reverse=False)
iterable : 可迭代对象
key: 排序规则(排序函数),在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数.根据函数运算的结果进行排序
reverse :是否是倒叙,True 倒叙 False 正序
#按照元素长度排序 lst = ['新白娘子传奇','康熙微服私访记','铁齿铜牙纪晓岚','还珠格格'] def func(s): return len(s) print(sorted(lst ,key=func))
#结合lambda匿名函数使用 lst = ['新白娘子传奇','康熙微服私访记','铁齿铜牙纪晓岚','还珠格格'] print(sorted(lst ,key=lambda s:len(s))
filter 筛选过滤
语法: filter(function,iterable)
function: 用来筛选的函数,在filter中会自动的把iterable中的元素传递给function,然后根据function返回的True或者False来判断是否保留此项数据
iterable:可迭代对象
#筛选出年龄小于2000的人员 lst = [{'id':1,'name':'孙悟空','age':2000}, {'id':2,'name':'奔波儿灞','age':666}, {'id':3,'name':'霸波尔奔','age':888},] lst1= filter(lambda e:e['age'] < 2000,lst) print(list(lst1)) #结果: [{'id': 2, 'name': '奔波儿灞', 'age': 666}, {'id': 3, 'name': '霸波尔奔', 'age': 888}]
---恢复内容结束---