Python装饰器
来源:互联网 发布:淘宝客招募网站 编辑:程序博客网 时间:2024/06/07 12:24
1、装饰器(无参数)
import timedef detecator_test(func): def inner(): start = time.time() func() end = time.time() print('耗时:', end - start) return inner@detecator_testdef print_time(): time.sleep(1.5) print('aaaaaaaaaa')print_time()
2、装饰器(有参数)
def edge_check(func): def inner(a,b): # if func=='sub': # if a.x-b.x<0: # a.x=a.x+200 # if a.y-b.y<0: # a.y=a.y+200 a=Coordinate(a.x if a.x>0 else 0,a.y if a.y>0 else 0) b=Coordinate(b.x if b.x>0 else 0,b.y if b.y>0 else 0) ab=func(a,b) ab=Coordinate(ab.x if ab.x>0 else 0,ab.y if ab.y>0 else 0) return ab #如果被装饰函数有return ,装饰器的内层函数也要有return return innerclass Coordinate(object): def __init__(self, x, y): self.x = x self.y = y def __repr__(self): return "Coord: " + str(self.__dict__)@edge_checkdef add(a, b): return Coordinate(a.x + b.x, a.y + b.y)@edge_checkdef sub(a, b): return Coordinate(a.x - b.x, a.y - b.y)one = Coordinate(100, 200)two = Coordinate(400, 200)res_add=add(one,two)res_sub=sub(one,two)print(res_sub)print(res_add)
3、通用的装饰器
def outter(func): def inner(*args,**kwargs): print('传入的参数:',args,kwargs) func(*args,**kwargs) return inner@outterdef test(x,y): print(x+y)test(1,2)
阅读全文
0 0
- python装饰器装饰类
- [python]python装饰器
- Python装饰器学习
- Python装饰器
- python 装饰器
- Python装饰器
- python 装饰器 应用
- python 装饰器2
- Python装饰器学习
- python装饰器
- python装饰器
- python 装饰器入门
- python装饰器
- python装饰器
- python 装饰器'@'
- python装饰器
- Python装饰器详解
- python 装饰器
- 编程从广义表字符串表示中直接获取广义表有关信息
- Codeforces 466C Number of Ways
- Linux 学习笔记_Linux服务管理(找到对应的文件)详解
- HashMap的实现原理和底层数据结构
- 产品经理的自我管理
- Python装饰器
- Linux 学习笔记_Linux网络管理_详解
- java基本数据类型长度
- 一个简单的K-近邻
- 使用观察者模式观察线程的生命周期
- 最短路条数
- XMPP协议
- 双十一大礼包之 心形曲线
- 不要62 HDU 2089