加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python-用闭包(装饰器)实现计算器的功能

发布时间:2020-12-17 17:07:11 所属栏目:Python 来源:网络整理
导读:满足闭包的条件: 1、函数中嵌套一个函数 2、外层函数的返回值是内层函数的函数名 3、内层嵌套函数对外部作用域有一个非全局变量的引用 闭包的作用: 实现数据锁定 装饰器的作用: 就是为已经存在的对象添加额外的功能。 常用场景: 插入日志、性能测试、事

满足闭包的条件:

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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读