python基础 -- 装饰器decorator

1. 作用

在不改变原有函数的基础上添加不同的功能

2. 作用

# 装饰器

# 原函数
# def human():
#     print('you have a body')

def hands(func):
    def wrapper(*args, **kwargs):
        print('you have two hands')
        return func(*args, **kwargs)
    return wrapper

# 添加一对手
# @hands
# def human():
#     print('you have a body')

# human()
# you have two hands
# you have a body

# 一个一个加太繁琐了
# 参数装饰器
def addpart(part):
    def add(func):
        def wrapper(*args, **kwargs):
            print('you have one/two {}'.format(part))
            return func(*args, **kwargs)
        return wrapper
    return add

@addpart('head')
def human():
    print('you have a body')

human()

你可能感兴趣的:(python基础 -- 装饰器decorator)