python3函数式编程:匿名函数高阶函数装饰器
Posted 番茄技术小栈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3函数式编程:匿名函数高阶函数装饰器相关的知识,希望对你有一定的参考价值。
匿名函数
关键字:lambda (本质:表达式)
普通函数
def add(x,y):
return x+y
匿名函数命名:
lambda x,y: x+y
匿名函数冒号后面只能是表达式
三元表达式
条件为真时返回的结果 if 条件判断 else 条件为假时返回结果
x = 2
y = 1
r = x if x > y else y
map类
list_x = [1,2,3,4,5,6,7,8 ]
def square(x):
reyurn x * x
r = map(square, list_x)
print(list(r))
Result:[1,4,9,16,25,36,49,64]
#执行for循环
#map和匿名函数结合使用
r = map(lambda x: x*x, list_x)
map的结果列表长度取决于两组列表中最短列表的长度
reduce 函数
from functools import reduce
#连续计算, 连续调用lambda
#reduce必须有两个参数
list_x = [1,2,3,4,5,6,7,8]
r = reduce(lambda x,y: x+y, list_x)#第三个参数的属性为初始值
print(r)
Result: 36
# 运行规则 在没有传入y值时,会将x的前两个值作为x和y,进行计算。
# (((1+2)+3)+4)+5
filter类 过滤
# 消除所有的0
list_x = [1,0,1,0,0,1]
r = filter(lambda x: True if x==1 else False,list_x) / filter(lambda x: x,list_x)
print(list(r))
Result: [1,1,1]
装饰器
# 多个函数打印当前时间
# 原则:对修改式封闭的 对扩展式开放的
# 装饰器 (模式)增加功能 函数内部不修改
import time
def decorator():#装饰器外部实现函数
def wrapper():
print(time.time())
return wrapper
@decorator #语法糖
def f1():
print('This is a function')
f = decorator(f1)
f1() 调用不变
f()
# 装饰器decorator 完整形态
import time
def decorator(func):
def wrapper(*arga,**kw):
print(time.time())
func(*args,**kw)
return wrapper
# args 可变参数
# kw 关键字参数
@decorator
以上是关于python3函数式编程:匿名函数高阶函数装饰器的主要内容,如果未能解决你的问题,请参考以下文章