python3函数式编程:匿名函数高阶函数装饰器

Posted 番茄技术小栈

tags:

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

匿名函数

关键字:lambda (本质:表达式)

普通函数

 
   
   
 
  1. def add(x,y):

  2.     return x+y

匿名函数命名:

 
   
   
 
  1. lambda x,y: x+y

匿名函数冒号后面只能是表达式

三元表达式

条件为真时返回的结果 if 条件判断 else 条件为假时返回结果

 
   
   
 
  1. x = 2

  2. y = 1

  3. r = x if x > y else y

map类

 
   
   
 
  1. list_x = [1,2,3,4,5,6,7,8 ]

  2. def square(x):

  3.      reyurn x  * x

  4. r = map(square, list_x)

  5. print(list(r))

  6. Result:[1,4,9,16,25,36,49,64]

  7. #执行for循环

  8. #map和匿名函数结合使用

  9. r = map(lambda x: x*x, list_x)

map的结果列表长度取决于两组列表中最短列表的长度

reduce 函数

 
   
   
 
  1. from functools import reduce

  2. #连续计算, 连续调用lambda

  3. #reduce必须有两个参数

  4. list_x = [1,2,3,4,5,6,7,8]

  5. r = reduce(lambda x,y: x+y, list_x)#第三个参数的属性为初始值

  6. print(r)

  7. Result: 36

  8. # 运行规则 在没有传入y值时,会将x的前两个值作为x和y,进行计算。

  9. # (((1+2)+3)+4)+5

filter类 过滤

 
   
   
 
  1. # 消除所有的0

  2. list_x = [1,0,1,0,0,1]

  3. r = filter(lambda x: True if x==1 else False,list_x) / filter(lambda x: x,list_x)

  4. print(list(r))

  5. Result: [1,1,1]

装饰器

 
   
   
 
  1. # 多个函数打印当前时间

  2. # 原则:对修改式封闭的 对扩展式开放的

  3. # 装饰器 (模式)增加功能 函数内部不修改

  4. import time

  5. def decorator():#装饰器外部实现函数

  6.    def wrapper():

  7.        print(time.time())

  8.    return wrapper

  9. @decorator #语法糖

  10. def f1():

  11.    print('This is a function')

  12. f = decorator(f1)                      

  13. f1()    调用不变

  14. f()

 
   
   
 
  1. # 装饰器decorator 完整形态

  2. import time

  3. def decorator(func):

  4.    def wrapper(*arga,**kw):

  5.        print(time.time())

  6.        func(*args,**kw)

  7.    return wrapper

  8. # args 可变参数

  9. # kw 关键字参数

  10. @decorator


以上是关于python3函数式编程:匿名函数高阶函数装饰器的主要内容,如果未能解决你的问题,请参考以下文章

Python 函数式编程: 匿名函数高阶函数装饰器

13.函数式编程:匿名函数高阶函数装饰器

Python3 函数式编程

python中的函数式编程与装饰器

Go的魅力, 函数式(柯里化, 闭包, 高阶函数), Python@装饰器, 封装

python函数式编程