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 过滤字符串的技巧,map与itertools.imap
Sep 06 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
如何在python字符串中输入纯粹的{}
Aug 22 Python
Python3中的bytes和str类型详解
May 02 Python
详解Django定时任务模块设计与实践
Jul 24 Python
django之状态保持-使用redis存储session的例子
Jul 28 Python
Python文件路径名的操作方法
Oct 30 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 Python
pytorch 模型的train模式与eval模式实例
Feb 20 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
python批量处理多DNS多域名的nslookup解析实现
Jun 28 Python
python如何写个俄罗斯方块
Nov 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
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
php表单转换textarea换行符的方法
2010/09/10 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
php实现高效获取图片尺寸的方法
2014/12/12 PHP
3种php生成唯一id的方法
2015/11/23 PHP
thinkPHP通用控制器实现方法示例
2017/11/23 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
简单谈谈Python流程控制语句
2016/12/04 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
如何理解python对象
2020/06/21 Python
python 实现"神经衰弱"翻牌游戏
2020/11/09 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
教师党员思想汇报
2014/01/06 职场文书
安全生产先进个人材料
2014/02/06 职场文书
大学生全国两会报告感想
2014/03/17 职场文书
岳庙导游词
2015/02/04 职场文书
编写python程序的90条建议
2021/04/14 Python
Python爬虫实战之爬取携程评论
2021/06/02 Python
使用 Apache 反向代理的设置技巧
2022/01/18 Servers