zoukankan      html  css  js  c++  java
  • python 自定义装饰器

    1. 提醒用户使用了废弃的函数
    def deprecated(func):
        """This decorator is used to mark functions as deprecated.
        It will result in a warning being emitted when the function is used.
        """
    
        @functools.wraps(func)
        def new_func(*args, **kwargs):
            warnings.simplefilter('always', DeprecationWarning)  # turn off filter
            warnings.warn(
                "Call to deprecated function {}.".format(func.__name__),
                category=DeprecationWarning,
                stacklevel=2
            )
            warnings.simplefilter('default', DeprecationWarning)  # reset filter
            return func(*args, **kwargs)
    
        return new_func
    
    1. 装饰类中函数的装饰器,给函数增加报错功能
    # 装饰类中函数的装饰器第一个参数是self
    def connection_closed_handler(function):
        """Handle ConnectionClosedException."""
        @wraps(function)
        def _wrap(inst, *args, **kwargs):
            try:
                return function(inst, *args, **kwargs)
    
            except (ConnectionClosedException, WebSocketConnectionClosedException):
                inst.logger.warn("the connection lost. Resetting ...")
                inst.reset(args[1])
                return function(inst, *args, **kwargs)
        return _wrap
    
    
  • 相关阅读:
    Centos7安装JDK+部署Tomcat8
    blog开发day3+Django admin的简单使用
    基于form组件的注册 + 基于Ajax的注册
    form组件复习+文件上传
    登录验证+验证码
    Django认证系统--Auth模块
    中间件
    form组件
    Ajax
    自定义分页 Cookie Session和获得路径
  • 原文地址:https://www.cnblogs.com/amize/p/13767675.html
Copyright © 2011-2022 走看看