满足闭包的条件:
1、函数中嵌套一个函数
2、外层函数的返回值是内层函数的函数名
3、内层嵌套函数对外部作用域有一个非全局变量的引用
闭包的作用:
实现数据锁定
装饰器的作用:
就是为已经存在的对象添加额外的功能。
常用场景:
插入日志、性能测试、事务处理、缓存、权限校验等
代码示例:
1 def scope(func): 2 def calc(a,b): 3 try: 4 _a = float(a) 5 _b = float(b) 6 except: 7 _a = 0 8 _b = 0 9 return func(_a,_b) 10 return calc 11 12 13 @scope 14 def add(a,b): 15 return a + b 16 17 18 @scope 19 def sub(a,b): 20 return a - b 21 22 23 @scope 24 def mul(a,b): 25 return a * b 26 27 28 @scope 29 def div(a,b): 30 try: 31 return a / b 32 except ZeroDivisionError as error: 33 print(error) 34 return 0 35 36 37 # 调用闭包函数 38 res = scope(add)("1",3) 39 print(res) 40 41 res = add("1","2") 42 print(res) 43 44 res = sub("1","2") 45 print(res) 46 47 res = mul("1","2") 48 print(res) 49 50 res = div("1","2") 51 print(res)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。