python如何通过闭包实现计算器的功能


Posted in Python onFebruary 22, 2020

这篇文章主要介绍了python如何通过闭包实现计算器的功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

满足闭包的条件:

1、函数中嵌套一个函数

2、外层函数的返回值是内层函数的函数名

3、内层嵌套函数对外部作用域有一个非全局变量的引用

闭包的作用:

实现数据锁定

装饰器的作用:

就是为已经存在的对象添加额外的功能。
常用场景:

插入日志、性能测试、事务处理、缓存、权限校验等

代码示例:

def scope(func):
  def calc(a, b):
    try:
      _a = float(a)
      _b = float(b)
    except:
      _a = 0
      _b = 0
    return func(_a, _b)
  return calc


@scope
def add(a, b):
  return a + b


@scope
def sub(a, b):
  return a - b


@scope
def mul(a, b):
  return a * b


@scope
def div(a, b):
  try:
    return a / b
  except ZeroDivisionError as error:
    print(error)
    return 0


# 调用闭包函数
res = scope(add)("1", 3)
print(res)

res = add("1", "2")
print(res)

res = sub("1", "2")
print(res)

res = mul("1", "2")
print(res)

res = div("1", "2")
print(res)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python爬虫入门教程--利用requests构建知乎API(三)
May 25 Python
对python Tkinter Text的用法详解
Oct 11 Python
在python中实现对list求和及求积
Nov 14 Python
python实现贪吃蛇小游戏
Mar 21 Python
对python dataframe逻辑取值的方法详解
Jan 30 Python
python实现二维数组的对角线遍历
Mar 02 Python
python3实现二叉树的遍历与递归算法解析(小结)
Jul 03 Python
详解Python 中sys.stdin.readline()的用法
Sep 12 Python
Pandas 解决dataframe的一列进行向下顺移问题
Dec 27 Python
Python爬虫爬取有道实现翻译功能
Nov 27 Python
Python matplotlib 利用随机函数生成变化图形
Apr 26 Python
python单向链表实例详解
May 25 Python
postman和python mock测试过程图解
Feb 22 #Python
Python实现链表反转的方法分析【迭代法与递归法】
Feb 22 #Python
Python实现队列的方法示例小结【数组,链表】
Feb 22 #Python
python实现从尾到头打印单链表操作示例
Feb 22 #Python
python实现滑雪游戏
Feb 22 #Python
Python实现栈的方法详解【基于数组和单链表两种方法】
Feb 22 #Python
Python栈的实现方法示例【列表、单链表】
Feb 22 #Python
You might like
php的正则处理函数总结分析
2008/06/20 PHP
php adodb操作mysql数据库
2009/03/19 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
关于JavaScript的一些看法
2009/05/27 Javascript
dojo学习第二天 ajax异步请求之绑定列表
2011/08/29 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
红米手机抢购的js代码
2014/03/10 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
12 款 JS 代码测试必备工具(翻译)
2016/12/13 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
2017/07/05 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
详解Python命令行解析工具Argparse
2016/04/20 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
教学实习自我评价
2014/01/28 职场文书
现场施工员岗位职责
2014/03/10 职场文书
增员口号大全
2014/06/18 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
村委会贫困证明范文
2014/09/21 职场文书
远程教育学习心得体会
2016/01/23 职场文书