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处理图片之PIL模块简单使用方法
May 11 Python
Python 专题一 函数的基础知识
Mar 16 Python
win7 x64系统中安装Scrapy的方法
Nov 18 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
python 在某.py文件中调用其他.py内的函数的方法
Jun 25 Python
django中SMTP发送邮件配置详解
Jul 19 Python
python3安装crypto出错及解决方法
Jul 30 Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 Python
python sqlite的Row对象操作示例
Sep 11 Python
基于Python执行dos命令并获取输出的结果
Dec 30 Python
python mock测试的示例
Oct 19 Python
matplotlib相关系统目录获取方式小结
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
5.PHP的其他功能
2006/10/09 PHP
PHP has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
python中wx将图标显示在右下角的脚本代码
2013/03/08 Python
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
Python温度转换实例分析
2018/01/17 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
python里glob模块知识点总结
2021/01/05 Python
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
Fossil美国官网:化石手表、手袋、首饰及配饰
2019/02/17 全球购物
初三学习决心书
2014/03/11 职场文书
优秀员工演讲稿
2014/05/19 职场文书
美术专业自荐信
2014/07/07 职场文书
旷课检讨书范文
2014/10/30 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
大学生团日活动总结
2015/05/06 职场文书
辞职信格式范文
2015/05/13 职场文书
怎样写观后感
2015/06/19 职场文书
2016大学军训心得体会
2016/01/11 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书
深入理解go缓存库freecache的使用
2022/02/15 Golang