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 相关文章推荐
Flask入门教程实例:搭建一个静态博客
Mar 27 Python
深入浅析python继承问题
May 29 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
Jun 23 Python
详解Django+uwsgi+Nginx上线最佳实战
Mar 14 Python
Python3.5内置模块之random模块用法实例分析
Apr 26 Python
Django CBV类的用法详解
Jul 26 Python
Python Sympy计算梯度、散度和旋度的实例
Dec 06 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
Feb 04 Python
在python中使用pyspark读写Hive数据操作
Jun 06 Python
快速解决pymongo操作mongodb的时区问题
Dec 05 Python
手残删除python之后的补救方法
Jun 26 Python
简单且有用的Python数据分析和机器学习代码
Jul 02 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 DB 数据库连接类定义与用法示例
2019/03/11 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
js实现的网页颜色代码表全集
2007/07/17 Javascript
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python调用新浪微博API项目实践
2014/07/28 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
Python3读写ini配置文件的示例
2020/11/06 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
C语言面试题
2013/05/19 面试题
《鞋匠的儿子》教学反思
2014/03/02 职场文书
会计毕业生自荐书
2014/06/12 职场文书
法制宣传标语
2014/06/23 职场文书
2014年团工作总结
2014/11/27 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
简历自我评价范文
2019/04/24 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python
Python基于Opencv识别两张相似图片
2021/04/25 Python
springboot+zookeeper实现分布式锁
2022/03/21 Java/Android