Skip to content

如何自定义装饰器 #93

@Sogrey

Description

@Sogrey

装饰器是一个函数

from functools import wraps
def log(flag):
    def decorate(func):
        @wraps(func)
        def _wrap(*args,**kwargs):
            try:
                if flag:
                    func(*args,**kwargs)
                print('name',func.__name__)
            except Exception as e:
                print(e.args)
        return _wrap
    return decorate

@log(False)
def add(a,b,c):
    print('sum','=',a + b + c)

add(1,2,3)  ## name add

装饰器本身就是一个函数,主要用于为函数添加额外功能。如插入日志、性能测试等。

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions