python装饰器作用-Python 装饰器的作用
python装饰器的作用,我是这么理解的,
比如本来已经有几个写好的函数,这几个函数的返回值都是list,现在我想要它们都返回str型的值,一个个改函数太累,也容易出错,装饰器能解决这样的问题,它能对n个函数进行编程
def square(func):
#返回平方
def _deco(a, b):
rtn = func(a, b)
return rtn * rtn
return _deco
@square
def my_add(a, b):
return a+b
print my_add(1,2)
# 原来的几个返回list的函数,具体干嘛不管,示例用
def even_element(lst):
return [n for n in lst if n%2 == 0]
def odd_element(lst):
return [n for n in lst if n%2 == 1]
def link_list(lst1, lst2):
l = deepcopy(lst1)
l.extend(lst2)
return l
a = range(5)
b = range(10)
print even_element(a)
print odd_element(a)
print link_list(a, b)
from copy import deepcopy
# 用装饰器
def list_to_str(func):
def wrapper(*args, **kwargs):
rtn_lst = [str(n) for n in func(*args, **kwargs)]
return ','.join(rtn_lst)
return wrapper
# 此时这些函数都返回str型
@list_to_str
def even_element(lst):
return [n for n in lst if n%2 == 0]
@list_to_str
def odd_element(lst):
return [n for n in lst if n%2 == 1]
@list_to_str
def link_list(lst1, lst2):
l = deepcopy(lst1)
l.extend(lst2)
return l
a = range(5)
b = range(10)
print even_element(a)
print odd_element(a)
print link_list(a, b)
带参数的装饰器
# encoding: utf-8
import time
'''
现实函数运行时间
参数run_times为被测函数运行次数
'''
def time_func(run_times):
def _time_func(func):
def wrapper(*args, **kwargs):
t1 = time.time()
for n in xrange(run_times):
rtn = func(*args, **kwargs)
t2 = time.time()
print t2 - t1
return rtn
return wrapper
return _time_func
@time_func(10000)
def addd(a, b):
return a+b
print addd(1,2)
python装饰器作用-Python 装饰器的作用相关推荐
- python中装饰器的作用_Python装饰器详解,详细介绍它的应用场景
装饰器的应用场景附加功能 数据的清理或添加:函数参数类型验证 @require_ints 类似请求前拦截数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改为函数提供额外的数据 moc ...
- python装饰器作用-Python装饰器用法实例总结
一.装饰器是什么 python的装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.简单的说装饰器就是一个用来返回函数的函数 ...
- Python:闭包(简介、使用方法、nonlocal修改闭包内使用的外部变量)、装饰器(定义、作用、通用装饰器、多个装饰器、带参数的装饰器、类装饰器、装饰器方式添加WEB框架的路由)
一.闭包的介绍 闭包可以保存函数内的变量 当闭包执行完毕,外部函数的变量才释放. # 闭包的作用:可以保存外部函数的变量 # 闭包的形成条件 # 1.函数嵌套 # 2.内部函数使用了外部函数的变量或者 ...
- 从懵懂到精通装饰器在python里的作用
一直想详细系统的总结一下decorator装饰器在python里面的作用.顾名思义,装饰器是用来装试的,好比一个房子,没有软装能不能住,能住,但膈不膈应,十分的膈应.所以没有装饰器,python依然可 ...
- python中修饰器的优点和作用_python 装饰器
1. 装饰器装饰器其实是一个函数,作用是装饰其他函数 装饰器的特点:1. 不改变被装饰的函数的源代码的情况下添加函数的功能 2. 不改变被装饰的函数的调用方式 装饰器的组成方式:高阶函数+嵌套函数 1 ...
- python中修饰器的优点和作用_Python装饰器(你想知道的这里都有)
1. 装饰器的定义 就是给已有函数增加额外功能的函数,它本质上就是一个闭包函数. 装饰器的功能特点: 不修改已有函数的源代码 不修改已有函数的调用方式 给已有函数增加额外的功能 闭包和装饰器的区分: ...
- python函数装饰函数_Python精进-装饰器与函数对象
本文为<爬着学Python>系列第四篇文章. 从本篇开始,本专栏在顺序更新的基础上,会有不规则的更新. 在Python的学习与运用中,我们迟早会遇到装饰器,这个概念对于初识装饰器的新手来说 ...
- Python 进阶_闭包 amp; 装饰器
目录 目录 闭包 函数的实质和属性 闭包有什么好处 小结 装饰器 更加深入的看看装饰器的执行过程 带参数的装饰器 装饰器的叠加 小结 装饰器能解决什么问题 小结 闭包 Closure: 如果内层函数引 ...
- python基础知识-11-函数装饰器
python其他知识目录 1.装饰器学习前热身准备 1.1装饰器简介 1.2装饰器热身分析 1) def func():pass v1 = 10 v2 = func #将函数名赋予一个变量,就和变量赋 ...
- python装饰器函数-Python精进-装饰器与函数对象
本文为<爬着学Python>系列第四篇文章. 从本篇开始,本专栏在顺序更新的基础上,会有不规则的更新. 在Python的学习与运用中,我们迟早会遇到装饰器,这个概念对于初识装饰器的新手来说 ...
最新文章
- 《2022产业互联网安全十大趋势》发布,专家学者透析产业安全新变化
- ​新型支架状电极允许人类思想操作计算机
- 什么是CNN?机器学习入门贴,Facebook员工打造,47k访问量
- c#解决在数据表格中无法显示秒数问题
- Apache Ignite事务架构:第三方持久化的事务处理
- LeetCode 144 ——二叉树的前序遍历
- 自动化学报-英文版-LaTeX模板
- 漂亮的英文字体 android,资深字体设计师私藏的10大APP,只怪你知道的太晚 !
- 图解详说pads2007安装全过程(经过验证)
- mysql安装方法及使用
- PCB封装绘制时的摆放方向
- 美国国家安全局(NSA)网络攻击主战武器NOPEN
- 微信小程序学习笔记4
- python小数乘法计算题_100道小数乘法计算题
- 《面试补习》--来聊聊削峰填谷!
- RT-Thread柿饼常用应用代码汇总
- 淘宝怎么寄东西到日本?如何在日本购买国内淘宝上的物品呢?
- IDEA自带插件的实体生成详细教程,离线情况下如何导入MySQL的驱动
- 论文写作 18: 审稿意见回复要直截了当
- ERP系统常用SQL集锦(转, 一个网友写的,感觉有点虎头蛇尾,不过还是有价值参考)...
热门文章
- 微软算法100题58 从尾到头输出链表(java)
- LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- silverlight, 双击事件
- 对GET/POST请求返回cookie中的键值对进行重新组合
- 正则在开发过程中的妙用
- TCP连接建立与终止,及状态转换
- agc015F Kenus the Ancient Greek
- Selenium查询10010账户余额——python篇
- Cordys服务器启停脚本
- [转]js escape,encodeURI,encodeURIComponent