python 装饰器实现
2017-09-21 14:03
218 查看
简单装饰器实现:
被装饰的函数带有返回值:
type
# -*- coding: utf-8 -*- ''' 装饰器的特点:对原函数是透明的 实现方式是: 高阶函数+ 嵌套函数 ''' from _ctypes_test import func def decorator(func): ''' 定义装饰器 *args,**kwargs 这两个是为了接收不固定的参数 ''' def test(*args,**kwargs): print("test 装饰器运行------>") func(*args,**kwargs) print("test 装饰器运行结束") return test ''' 使用 @decorator 这种方式(@装饰器名字)来调用装饰器 ''' @decorator def func_1(): print("func_1方法被调用") @decorator def func_2(name): print("this is func_2:",name) func_1() func_2("name")
被装饰的函数带有返回值:
''' 根据 type 运行指定的装饰器 ''' def decorator_name(decorator_type): def switch(func): def wrapper(*args,**kwargs): if decorator_type=="name": print("name decorator is run ---->") res = func(*args,**kwargs) #接收被装饰函数的返回值 print("name decorator stop ------") return res #返回 elif decorator_type=="fullName": print("fullName decorator is run ---->") res = func(*args,**kwargs) #接收被装饰函数的返回值 print("fullName decorator stop ------") return res #返回 return wrapper return switch @decorator_name(decorator_type="name") def func_name(name): print("my name is :",name) return name @decorator_name(decorator_type="fullName") def func_fullName(name): print("fullName is :",name) return name func_name("xiaoQang") func_fullName("wangwang")
type
相关文章推荐
- python学习系列之python装饰器基础(3)---装饰器实现用户登录验证
- Python实现对一个函数应用多个装饰器的方法示例
- python 多个装饰器组合应用,实现面向切面之AOP编程
- python用装饰器实现缓存函数执行结果
- Head First 设计模式——装饰器(Decorator Pattern)——Python实现
- 《Python - 实现一个简单的装饰器》--- 输出程序运行时间
- python 装饰器(实现dataprovider)
- 【Python】装饰器实现日志记录
- 通过 Python 装饰器实现DRY(不重复代码)原则
- Python中使用装饰器和元编程实现结构体类实例
- python重试装饰器的简单实现
- python实现单粒模式,模块方法/装饰器方法/__new__方法
- Python单元测试_使用装饰器实现测试跳过和预期故障的方法
- python用装饰器实现缓存函数执行结果
- $python用装饰器实现一个计时器
- 装饰器应用,Python模块学习之(__call__)实现准确计算函数运行时间
- 通过 Python 装饰器实现DRY(不重复代码)原
- Python 装饰器实现样例
- Python中使用装饰器和元编程实现结构体类实例
- 装饰器实现Python web框架路由功能