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中wx将图标显示在右下角的脚本代码
Mar 08 Python
Python使用CMD模块更优雅的运行脚本
May 11 Python
Python多线程经典问题之乘客做公交车算法实例
Mar 22 Python
关于反爬虫的一些简单总结
Dec 13 Python
mac安装scrapy并创建项目的实例讲解
Jun 13 Python
python使用Qt界面以及逻辑实现方法
Jul 10 Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
Python 类的魔法属性用法实例分析
Nov 21 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
Scrapy模拟登录赶集网的实现代码
Jul 07 Python
基于python实现图片转字符画代码实例
Sep 04 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
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
Js+XML 操作
2006/09/20 Javascript
filemanage功能中用到的lib.js
2007/04/08 Javascript
JavaScript中Math对象使用说明
2008/01/16 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
理解javascript对象继承
2016/04/17 Javascript
JavaScript实现显示函数调用堆栈的方法
2016/04/21 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
[01:11:37]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第一场 11.19
2020/11/19 DOTA
简述Python中的面向对象编程的概念
2015/04/27 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
python简单实现最大似然估计&scipy库的使用详解
2020/04/15 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
实习单位接收函
2014/01/11 职场文书
活动志愿者自荐信
2014/01/27 职场文书
请假条怎么写
2014/04/10 职场文书
2014年实验室工作总结
2014/12/03 职场文书
2015年乡镇党务公开工作总结
2015/05/19 职场文书
JavaScript ES6的函数拓展
2022/01/18 Javascript
Golang连接并操作MySQL
2022/04/14 MySQL
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server