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+django实现文件上传
Jan 17 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
Apr 11 Python
python实现微信发送邮件关闭电脑功能
Feb 22 Python
Django添加favicon.ico图标的示例代码
Aug 07 Python
Python import与from import使用及区别介绍
Sep 06 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
Dec 10 Python
python 多进程队列数据处理详解
Dec 23 Python
Python使用turtle库绘制小猪佩奇(实例代码)
Jan 16 Python
python中如何进行连乘计算
May 28 Python
为什么是 Python -m
Jun 19 Python
python时间time模块处理大全
Oct 25 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 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
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
php获取文件大小的方法
2014/02/26 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
显示js对象所有属性和方法的函数
2009/10/16 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
JavaScript实现x秒后自动跳转到一个页面
2013/01/03 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
Python入门_条件控制(详解)
2017/05/16 Python
python的exec、eval使用分析
2017/12/11 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
python元组的概念知识点
2019/11/19 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
一款纯css3实现的tab选项卡的实列教程
2014/12/11 HTML / CSS
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
天逸系统(武汉)有限公司Java笔试题
2015/12/29 面试题
金智子午JAVA面试题
2015/09/04 面试题
服装促销活动方案
2014/02/23 职场文书
求职信怎么写
2014/05/23 职场文书
校长四风对照检查材料
2014/09/27 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
解除租赁合同协议书
2016/03/21 职场文书
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis
详解OpenCV曝光融合
2022/04/29 Python