python 装饰器示例使用

print('----------------11111------------------------')
def sum_time(func):
    def wrapper():
        print('1')
        func()
        print('2')
    return wrapper
@sum_time
def num():
    print('3')
num()

print('----------------22222------------------------')
def sum_time(func):
    def wrapper(*args,**kwargs):
        print('1')
        ret=func(*args,**kwargs)
        print(ret)
        print('2')
    return wrapper
@sum_time
def num(x,y):
    z=x*y
    return z
a=num(3,4)
print(a)

print('----------------33333------------------------')
def sum_time(func):
    def wrapper(*args,**kwargs):
        print('1')
        ret=func(*args,**kwargs)
        print(ret)
        print('2')
        return ret
    return wrapper
@sum_time
def num(x,y):
    z=x*y
    return z
a=num(3,4)
print(a)

print('----------------44444------------------------')
def sum_time(func):
    """doc-sum_time"""
    def wrapper():
        """doc-wrapper"""
        func()
    return wrapper
@sum_time
def num():
    """doc_num"""
num()
print(num.__name__, num.__doc__)

print('----------------55555------------------------')
from functools import wraps
def sum_time(func):
    """doc-sum_time"""
    @wraps(func)
    def wrapper():
        """doc-wrapper"""
        func()
    return wrapper
@sum_time
def num():
    """doc_num"""
num()
print(num.__name__, num.__doc__)

 

运行结果如下:

 

posted @ 2022-08-09 16:47  一个人一个城  阅读(36)  评论(0)    收藏  举报