函数式编程二(闭包和装饰器)
  2LzAzYhjn3vW 2023年11月13日 31 0

1.在一个函数内部的函数,同时引用了外部函数的变量,绑定了外部变量的过程就叫闭包(对数据的操作封装了起来)

2.装饰器:不影响原有功能的前提下,可以添加新功能,可以用来调用无法修改的第三方API

 a.外部闭包函数的参数是被封装修饰器的函数对象。

 b.返回的是装饰函数+新增的装饰功能。

 c.可以理解为装饰器设计模式。

案例:

# 构建模拟事务处理装饰器
# 一.函数1: 删除数据功能
def delete():
    print("删除数据功能")
# 函数2: 增加数据功能
def add():
    print("增加数据功能")
# 二.需要新增功能检查数据是否存在
def user_chexk(func):
    def f1():
        print("检查数据是否存在")
        func()
    return f1
# 三.使用闭包给函数1和2添加功能
use1=user_chexk(delete)
use1()
print(use1)

use2=user_chexk(add)
use2()
print(use2)

#四:使用装饰器给函数1和2添加功能
@user_chexk
def delete2():
    print("删除数据功能--使用装饰器")
delete2()

@user_chexk
def add2():
    print("增加数据功能--使用装饰器")
add2()

运行结果:

函数式编程二(闭包和装饰器)_事务处理

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  93aPYAgMnnG6   2023年11月02日   57   0   0 Windows封装
  gZ9eleVc9eAt   2023年11月02日   65   0   0 封装cisco
  7APuLTNxz17A   2023年11月13日   22   0   0 TCP封装IP
2LzAzYhjn3vW