Python装饰器注解

本文介绍了Python装饰器的概念、使用背景和场景,探讨了装饰器的优缺点,并通过实例详细讲解了函数装饰器、带参数的函数装饰器以及类装饰器的实现方式,为Python程序员提供了扩展和管理代码的新思路。
摘要由CSDN通过智能技术生成

第一章 引言

第1节 装饰器定义

在面向对象(OOP)的设计模式中,Decorator被称为装饰模式,OOP的装饰器模式需要通过继承和组合来实现。
本质上,装饰器是一个类或带有返回函数的高阶函数。

第2节 装饰器的使用背景

一般的,我们为了扩展一个类经常使用继承方式来实现,由于继承给类引入了新的静态特征,并且随着扩展功能的增多,子类会很膨胀。
所以,在不想增加很多子类的情况下扩展类,那么就可以选择装饰器来灵活地扩展类了。

第3节 装饰器的使用场景

(一)扩展一个类或函数的功能;
(二)动态增加功能,动态撤销;

第4节 装饰器的优缺点

优点:
(一)装饰器和被装饰对象可以独立发展,不会互相耦合;
(二)装饰模式是继承的一个替代模式,装饰器可以动态扩展一个实现类的功能
缺点:
(一)多层装饰器比较复杂

第二章 python中的装饰器

第1节 实现对象

python 除了能支持OOP的Decorator外,还能从语法层次上支持Decorator。
python 的Decorator可以用函数实现,也可以用类实现。

第2节 函数装饰器demo

需求:在对象功能执行前,打印对象的名称和传入的参数。

思路:1、定义一个2层嵌套的装饰器函数,主函数接收被装饰对象而内部函数接收被装饰对象的参数,在内部函数先完成打印需求,然后执行被装饰对象并赋值给一个变量,最后在内部函数return该变量,而外部函数则return内部函数对象。
2、定义功能函数,实现具体的功能,并调试通过。
3、使用python的@语法,在功能函数前面添加“@decoratorName”,再次运行功能函数,检查是否实现需求。

示例代码

def decorator1(func):
	"""a simple decorator"""
	def _wrapper(*args, **kargs):
		print('Func Name: %s'%func.__name__)
		print('Func args: %s'%args)
		print('Func kargs: %s'%kargs)
		# Execute func which 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值