def practice(para): if isinstance(para, str): def decorator(func): def wrapper(*args, **kw): print ("begin %s function %s..." %(para, func.__name__)) func(*args, **kw) print ("end %s function %s..." %(para, func.__name__)) return wrapper return decorator else: def wrapper(text="call", *args, **kw): print ("begin %s function %s..." %(text, para.__name__)) para(*args, **kw) print ("end %s function %s..." %(text, para.__name__)) return wrapper
@practice def demo1(): print ("function demo1")
@practice("execute") def demo2(): print ("function demo2")
demo1() print ("-----------------------分割线---------------------") demo2()
Sign in to make a reply
迷一样的erika和痴一样的我
def practice(para): if isinstance(para, str): def decorator(func): def wrapper(*args, **kw): print ("begin %s function %s..." %(para, func.__name__)) func(*args, **kw) print ("end %s function %s..." %(para, func.__name__)) return wrapper return decorator else: def wrapper(text="call", *args, **kw): print ("begin %s function %s..." %(text, para.__name__)) para(*args, **kw) print ("end %s function %s..." %(text, para.__name__)) return wrapper
@practice def demo1(): print ("function demo1")
@practice("execute") def demo2(): print ("function demo2")
demo1() print ("-----------------------分割线---------------------") demo2()