2021-07-02

本文详细介绍了Python装饰器的概念和使用,包括如何创建装饰器、如何通过装饰器传递参数以及在装饰器中实现日志记录功能。通过实例展示了如何使用装饰器为函数添加日志输出,以及如何根据传入参数动态调整日志级别,如'warning'和'Debug'。装饰器在不改变原有函数代码的基础上增强了代码的可读性和复用性,是Python编程中重要的代码组织方式。
摘要由CSDN通过智能技术生成

python装饰器

python装饰器本身就是一个函数,它的主要功能就是在不改变原函数的情况下,额外的增加一些功能,提高代码的利用率,它的返回值也是一个函数

1.本质:装饰器是一个函数
2.参数:你需要调用的函数
3.返回值:返回值也是一个函数
4.作用:在不改变原函数的情况下增加额外的功能

python装饰器有很多经典的应用场景,主要是将许多雷同的代码政客起来提高代码的整洁及可阅读性。比如:插入日志、性能测试、事务处理、权限校验等。

如何使用装饰器

添加日志信息,来实现func1(),func2()日志的输出

import	logging
def func()
	def	wapper()
		# 返回传入的方法名参数的调用后的日志信息
		logging.warning('{}日志信息'.format(func.__name__))
	return func
returrn wapper()

@func
def	func1():
	print('func1')
	
@func
def	func2():
	print('func2')
func1()
func2()

输出:WARNING:root:func1函数正在执行
		WARNING:root:func2函数正在执行

当然也能传入参数

import	logging
def func()
	def	wapper(*args,**kwargs) 		#通过*args,**kwargs来传入指定的参数
		# 返回传入的方法名参数的调用后的日志信息
		logging.warning('{}日志信息'.format(func.__name__))
	return func(*args,**kwargs) 
returrn wapper()

通过装饰器传参来打印不同的日志信息

 import	logging
 def	log(level):
	def func():
		def	wapper():
			if  level == 'warning':
			# 返回传入的方法名参数的调用后的日志信息
			logging.warning('{}日志信息'.format(func.__name__))
			elif level == 'Debug':
			logging.Debug('{}日志信息'.format(func.__name__))
		return func
	returrn wapper()

@func('warning')
def	func1():
	print('func1')
	
@func('Debug')
def	func2():
	print('func2')
func1()
func2()

输出:WARNING:root:func1函数正在执行
		DEBUG:root:func2函数正在执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值