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的构建工具setup.py的方法使用示例
Oct 23 Python
pycharm: 恢复(reset) 误删文件的方法
Oct 22 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
HTML的form表单和django的form表单
Jul 25 Python
Pytorch反向求导更新网络参数的方法
Aug 17 Python
python多线程同步之文件读写控制
Feb 25 Python
Python求平面内点到直线距离的实现
Jan 19 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
Python如何执行精确的浮点数运算
Jul 31 Python
python 常见的反爬虫策略
Sep 27 Python
python中把元组转换为namedtuple方法
Dec 09 Python
Python实现简单猜数字游戏
Feb 03 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中文字符串截取方法实例总结
2014/09/30 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
javascript中的继承实例代码
2011/04/27 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
详解如何使用 vue-cli 开发多页应用
2017/12/16 Javascript
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
python读取excel表格生成erlang数据
2017/08/26 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
J2EE面试题
2016/03/14 面试题
迎接领导欢迎词
2014/01/11 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
sql server 累计求和实现代码
2022/02/28 SQL Server
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers