python 装饰器 四 (带有类参数的装饰器)

#!/usr/bin/env python
#_*_coding=utf-8_*_
#Author: xieyixue
#mail: xyx_0410@163.com
#Created Time: 20150701日 星期三 013036

class staticClass:

def __init__(self):
print "初始化"

@staticmethod
def before():
print "before"

@staticmethod
def after():
print "after"

def deco_class(arg_class):

def deco_fun(*arg,**kwarg):

def _deco_fun(*arg,**kwarg):

arg_class.before()

ret = deco_fun(*arg,**kwarg)


arg_class.after()
return ret
return _deco_fun
return deco_fun

@deco_class(staticClass)
def fun1(a):
print a
print '======为什么没打印啊'



fun1('xixi')
#为啥不打印啊,因为befor 是类的公有方法,不需要初始化,不走__init__ 
posted @ 2015-07-01 01:57  谢义学  阅读(395)  评论(0)    收藏  举报