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删除windows垃圾文件的方法
Jul 14 Python
python将ansible配置转为json格式实例代码
May 15 Python
Python中scatter函数参数及用法详解
Nov 08 Python
python模拟表单提交登录图书馆
Apr 27 Python
tensorflow 获取模型所有参数总和数量的方法
Jun 14 Python
python pexpect ssh 远程登录服务器的方法
Feb 14 Python
解决pyqt5中QToolButton无法使用的问题
Jun 21 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
使用django和vue进行数据交互的方法步骤
Nov 11 Python
Python pip使用超时问题解决方案
Aug 03 Python
python全面解析接口返回数据
Feb 12 Python
Python Numpy库的超详细教程
Apr 06 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
PHP 身份证号验证函数
2009/05/07 PHP
php中大括号作用介绍
2012/03/22 PHP
php中session退出登陆问题
2014/02/27 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
页面使用密码保护代码
2013/04/10 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
React 路由懒加载的几种实现方案
2018/10/23 Javascript
JavaScript实现的九种排序算法
2019/03/04 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
python获取一组汉字拼音首字母的方法
2015/07/01 Python
python中字符串类型json操作的注意事项
2017/05/02 Python
python 正确保留多位小数的实例
2018/07/16 Python
Python实现八皇后问题示例代码
2018/12/09 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
介绍一下Ruby的多线程处理
2013/02/01 面试题
银行简历自我评价
2014/02/11 职场文书
出纳担保书范文
2014/04/02 职场文书
事业单位考核材料
2014/05/21 职场文书
常务副总经理任命书
2014/06/05 职场文书
学校党员对照检查材料
2014/08/28 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
党内外群众意见范文
2015/06/02 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python