zoukankan      html  css  js  c++  java
  • 装饰器

    def auth(func):  #func为被装饰的函数

    def inner(*args,**kwargs):
    print("前")
    ret = func(*args,**kwargs)
    print("后")
    return ret
    return inner

    @auth
    def index():
    print("index")

    @auth
    def detail():
    print("detail")
    return "xxxxx"

    print(index.__name__) #打印的函数名为inner
    print(detail.__name__) #打印的函数名为inner

    print(index()) #打印结果为 前 index 后 None index函数中没有return返回None
    print(detail()) #打印结果为 前 detail 后 xxxxx 有return也要返回return的值
    from functools import wraps
    def check_user(func):
        print("---1---")
        @wraps(func)
        def inner(*args,**kwargs):
            print("在被装饰函数之前做的事,判断等")
            ret = func(*args,**kwargs)
            print("在被装饰函数之后做的事,判断等")
            return ret
        return inner
    
    @check_user
    def test1():
        print("123456789")
        return "你好呀"
    
    test1()
    
    # ---1---
    # 在被装饰函数之前做的事,判断等
    # 123456789
    # 在被装饰函数之后做的事,判断等
    from functools import wraps
    def check_user(func):
        print("---1---")
        @wraps(func)
        def inner(*args,**kwargs):
            print("在被装饰函数之前做的事,判断user等")
            ret = func(*args,**kwargs)
            print("在被装饰函数之后做的事,===")
            return ret
        return inner
    
    def check_token(func):
        print("---2---")
        @wraps(func)
        def inner(*args,**kwargs):
            print("在被装饰函数之前做的事,判断token等")
            ret = func(*args,**kwargs)
            print("在被装饰函数之后做的事,xxxx")
            return ret
        return inner
    
    @check_user
    @check_token
    def test1():
        print("123456789")
        return "你好呀"
    
    test1()
    
    # ---2---
    # ---1---
    # 在被装饰函数之前做的事,判断user等
    # 在被装饰函数之前做的事,判断token等
    # 123456789
    # 在被装饰函数之后做的事,xxxx
    # 在被装饰函数之后做的事,===
  • 相关阅读:
    上海某地产监控项目
    2020,8种必备Selenium编写自动化用例的技巧
    使用 Postman 做 API 自动化测试
    Python最火的第三方开源测试框架 ——pytest
    基于Appium的UI自动化测试
    4招了解前端单元测试
    你应该学会的接口调试神器——Postman高级用法
    分分钟玩转UI自动化测试
    Python Selenium 之数据驱动测试的实现
    python+requests接口自动化框架
  • 原文地址:https://www.cnblogs.com/chvv/p/9850832.html
Copyright © 2011-2022 走看看