python如何通过闭包实现计算器的功能
作者:奔奔-武 发布时间:2023-10-04 06:08:06
标签:python,闭包,计算,器
这篇文章主要介绍了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)
来源:https://www.cnblogs.com/benben-wu/p/12104448.html


猜你喜欢
- Django auth 应用模块在设计开发任何一个站点的时候都需要有“用户”的概念,从用户的注册、登
- 在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定
- 按需导入:安装插件首先需要引入额外的插件:前**vite-plugin-components已重命名为unplugin-vue-compon
- 一、简介 transitions库pip install transitions状态机 state:状态节点transition:
- 前言:Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数,itertools提供的几个“无限
- 如下所示:>>> item={} ; items=[] #先声明一个字典和一个列表,字典用来添加到列表里面&g
- 本文实例讲述了Python实现判断字符串中包含某个字符的判断函数。分享给大家供大家参考,具体如下:#coding=utf8#参数包含两个:#
- 它支持主流的浏览器,包含:Chrome、Firefox、Safari、Microsoft Edge 等,同时支持以无头模式、有头模式运行pl
- 1、什么是AspJpeg?AspJpeg是一款功能强大的基于Microsoft IIS环境的图片处理组件,AspJpeg可以使用很少的代码在
- 如何用net/http构建一个简单的web服务Golang提供了简洁的方法来构建web服务package main import ( &nb
- Queue模块保持线程同步利用Queue对象先进先出的特性,将每个生产者的数据一次存入队列,而每个消费者将依次从队列中取出数据import
- 表格内容根据票据日期升序(这里是已经排序后的效果)上代码代码中data的内容如下根据paper_date排序,因为目前这种格式不支持比较,需
- post, put请求的参数有两种形式一种是把参数拼接在url中 对应postman第二种是把参数放在body中 对应postman在Pyt
- import "strconv"strconv 包实现了基本数据类型和其字符串表示的相互转换。string与int类型转
- 简介:图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。普通图像二值化代码如下:impor
- 1、何为计算属性:大白话讲就是计算出来的结果保存在属性当中,可以想象为缓存。<!DOCTYPE html><html la
- Python之POST调用Restful接口示例# -*- coding: utf-8 -*-import jsonimport reimp
- python3 判断空列表@(python3)有个判断列表是否为空的需求,试了好多方式,比如:a = []if a is not None:
- 前言在爬虫系列文章 优雅的HTTP库requests 中介绍了 requests 的使用方式,这一次我们用 requests 构建一个知乎
- UUID 全称是 Universally unique identifier,它是一种识别符,使用任意的计算机都可以生成,不需要一个中央数据