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的即时标记项目练习笔记
Sep 18 Python
Python实现抓取百度搜索结果页的网站标题信息
Jan 22 Python
分析Python中设计模式之Decorator装饰器模式的要点
Mar 02 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
Python实现简单字典树的方法
Apr 29 Python
Python实现包含min函数的栈
Apr 29 Python
详解Python实现多进程异步事件驱动引擎
Aug 25 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
pandas dataframe的合并实现(append, merge, concat)
Jun 24 Python
Python搭建代理IP池实现检测IP的方法
Oct 27 Python
Python class的继承方法代码实例
Feb 14 Python
python实现简单聊天功能
Jul 07 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
session 的生命周期是多长
2006/10/09 PHP
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
php输出图像的方法实例分析
2017/02/16 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
javascript下给元素添加事件的方法与代码
2007/08/13 Javascript
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
基于iview的router常用控制方式
2019/05/30 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
python类继承与子类实例初始化用法分析
2015/04/17 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
python 字典中取值的两种方法小结
2018/08/02 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
python实现学员管理系统
2019/02/26 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
假日旅行社实习自我鉴定
2013/09/24 职场文书
会议开场欢迎词
2014/01/15 职场文书
财务负责人任命书
2014/06/06 职场文书
中秋晚会活动方案
2014/08/31 职场文书
罚款通知怎么写
2015/04/22 职场文书
污染环境建议书
2015/09/14 职场文书
python获取淘宝服务器时间的代码示例
2021/04/22 Python
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server
Python学习之异常中的finally使用详解
2022/03/16 Python
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis