本网站可以通过分类标签帮助你快速筛选出你想看的文章,记住地址:www.Facec.cc

python装饰器详情

装饰器示例

def outter(func):
    def wrapper(*args, **kwargs):
        # 1、调用原函数
        # 2、为其增加新功能
        res = func(*args, **kwargs)
        return res

    return wrapper

@outter
def index(x, y, z):
    time.sleep(3)
    print('index %s %s %s' % (x, y, z))

带参数的装饰器

# !/usr/bin/env python
# -*- coding:utf-8 -*-

# 1、带参数的装饰器
def wrapper_out(parameter):
    print(parameter)

    def wrapper(func):
        def inner(*args, **kwargs):
            ret = func(*args, **kwargs)
            return ret
        return inner
    return wrapper


"""
@wrapper_out('企鹅') 分析解读:
当函数执行到带参数装饰器 @wrapper_out('企鹅') 这句时,分两步执行:
    1.执行wrapper_out('企鹅')这个函数,把相应的参数'微信'传给parameter,并且得到返回值wrapper函数名
    2.将@与wrapper结合,得到我们之前熟悉的标准版的装饰器,按照装饰器的执行流程执行。
"""


@wrapper_out('企鹅')
def qq():
    print('成功登录企鹅!')


qq()

# python  

评论