码迷,mamicode.com
首页 > 其他好文 > 详细

装饰器

时间:2019-01-15 20:32:18      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:匿名函数   name   map   lan   定义   代码   四舍五入   filter   bsp   

装饰器定义:用别的函数修改原函数,本质是闭包

  扩展开发,修改原代码封闭,不改变调用方式

格式:装饰器的名字在被装饰的函数正上方独占一行

语法糖:被装饰的函数名=装饰器的函数

lambda 匿名函数

lanmbda 参数:返回值

f=lambda x,y,z:x+y+z   匿名函数定义的时候没有函数名,没有def,有形参,可以接收多个形参
print(f(1,2,3))
结果为6

匿名函数没有名字,怎么查看  用函数__name__

匿名函数的返回值只能是一个,不能是多个

print((lambda x:x) () )  调用的时候要传参

内置函数

zip:把每个列表相同位置的元素放入一个列表中

lst=[1,2,3,4]
lst1=[1,2,3,4,5]
lst2=[3,4,5,6,7]
for i in zip(lst,lst1,lst2)
    print(i)
结果:[1,1,3],[2,2,4],[3,3,5],[4,4,6]

sorted:排序

li=[放假,胜多负少,水电费,问我干啥的]
print(sorted(li,key=lambda x:len(x)))      sorted(可迭代对象,key=函数规则)

filter:筛选元素

li=[1,2,3,4,5,6,7]
print(list(filter(lambda x:x>3,li)))    filter(函数规则,可迭代对象)

map:累加

lst=[1,2,3,4]
lst1=[13,4,5,6]
print(list(map(lambda x,y:x+y,lst,lst1)))  

reduce:累计算

from functools import reduce   先引入reduce
lst=[1,2,3,4]
print(reduce(lambda x,y:x+y,lst))  
四舍五入:reduce
print(reduce(4,33)) 4

枚举:enumerate()
li=[1,2,3,4] 
for k,i in enumerate(li):     将可迭代对象放里面,默认从0开始,自己可以指定数字
    print(k,i)     01 12 23 34 
  print(3,i) 31 32 33 34

 















 

装饰器

标签:匿名函数   name   map   lan   定义   代码   四舍五入   filter   bsp   

原文地址:https://www.cnblogs.com/weize111/p/10274029.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!