python3.3 装饰器日志

#!/usr/local/bin/Python3.3
#-*-coding:utf-8-*-

def log_none_params(func):
	'''
	none params decorate function
	'''
	def log(*args, **kargs):
		print("before func" + str(func))
		try:
			return func(*args, **kargs);
		finally:
			print("after func")
	return log	
	
def log_with_params(when):
	'''
	log decorate function with params 
	'''

	def pre_log(func, *args, **kargs):
		def log():
			print("pre_log ...")
			return func(*args, **kargs);
		return log
	
	def sub_log(func, *args, **kargs):
		def log():
			try:
				return func(*args, **kargs)
			finally:
				print("sub_log ...")
		return log

	try:
		return {"pre":pre_log, "sub":sub_log}[when]
	except:
		print("when must in (pre, sub)")


@log_none_params
def test_method1():
	print("in test_method1")
	
@log_with_params("sub")	
def test_method2():
	print("in test_method2...")		
	
if __name__ == '__main__':
	test_method1()
	test_method2()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值