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实现的简单文本类游戏实例
Apr 28 Python
查看Django和flask版本的方法
May 14 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
python selenium 弹出框处理的实现
Feb 26 Python
使用python来调用CAN通讯的DLL实现方法
Jul 03 Python
django+tornado实现实时查看远程日志的方法
Aug 12 Python
python类的实例化问题解决
Aug 31 Python
python socket通信编程实现文件上传代码实例
Dec 14 Python
Python利用FFT进行简单滤波的实现
Feb 26 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
Jan 12 Python
python 安全地删除列表元素的方法
Mar 16 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
新52大事件
2020/03/03 欧美动漫
PHP也可以?成Shell Script
2006/10/09 PHP
我的论坛源代码(四)
2006/10/09 PHP
php实现简单洗牌算法
2013/06/18 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
javascript操作referer详细解析
2014/03/10 Javascript
JavaScript 事件对象介绍
2015/04/13 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
javascript实现简单的ajax封装示例
2016/12/28 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
用Python写的图片蜘蛛人代码
2012/08/27 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
python3模块smtplib实现发送邮件功能
2018/05/22 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
Pytorch之contiguous的用法
2019/12/31 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
PyQt5-QDateEdit的简单使用操作
2020/07/12 Python
python 实现IP子网计算
2021/02/18 Python
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
Linux文件系统类型
2012/09/16 面试题
2014年教师节寄语
2014/04/03 职场文书