装饰器

Posted weize111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰器相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

 















 






















以上是关于装饰器的主要内容,如果未能解决你的问题,请参考以下文章

Python面向对象学习之八,装饰器

thymeleaf 片段渲染后重新加载 javascript

代码缺乏装饰?使用ts装饰器来装饰你的代码

代码缺乏装饰?使用ts装饰器来装饰你的代码

代码缺乏装饰?使用ts装饰器来装饰你的代码

代码缺乏装饰?使用ts装饰器来装饰你的代码