zoukankan      html  css  js  c++  java
  • python 12 days

    python 12 days

    一、函数的有用信息

    例题一:

    举例习题
    结果

     例题二:

    def wrapper(f):
        def inner(*args, **kwargs):
            print(f.__name__)
            print(f.__doc__)
            """执行函数之前的操作"""
            ret = f(*args, **kwargs)
            """执行函数之后的操作"""
            return ret
        return inner
    
    @wrapper
    def login(username, password):
        """
        此函数需要用户名,密码两个参数,完成的是登录的功能。
        :return: True 登录成功。 False登录失败。
        """
        print('登录成功...')
        return True
    
    # print(login.__name__)
    # print(login.__doc__)
    login(1, 2)
    习题
    login
    
        此函数需要用户名,密码两个参数,完成的是登录的功能。
        :return: True 登录成功。 False登录失败。
        
    登录成功...
    结果

    例题三:

    from functools import wraps
    
    def wrapper(f):
        @wraps(f)
        def inner(*args, **kwargs):
            """执行函数之前的操作"""
            ret = f(*args, **kwargs)
            """执行函数之后的操作"""
            return ret
        return inner
    #
    @wrapper
    def login(username, password):
        """
        此函数需要用户名,密码两个参数,完成的是登录的功能。
        :return: True 登录成功。 False登录失败。
        """
        a = 2
        c = 4
        print('登录成功...')
        return True
    
    print(login.__name__)
    print(login.__doc__)
    习题
    login
    
        此函数需要用户名,密码两个参数,完成的是登录的功能。
        :return: True 登录成功。 False登录失败。
    结果

    二、带参数的装饰器

    例题一:

    def timer_out(flag1):  #falg1 = flag
        def timer(f):
            def inner(*args, **kwargs):
                if flag1:
                    start_time = time.time()
                    time.sleep(0.3)
                    ret = f(*args, **kwargs)
                    end_time = time.time()
                    print('执行效率%s' % (end_time-start_time))
                    return ret
                else:
                    ret = f(*args, **kwargs)
                    return ret
            return inner
        return timer
    # #
    flag = False
    #
    @timer_out(flag)  # 1,步 timer_out(flag) == timer 2,@与timer结合,变成你熟悉的装饰器 @timer
    def func1():
        print(111)
    
    @timer_out(flag)
    def func2():
        print(222)
    
    @timer_out(flag)
    def func3():
        print(333)
    func1()
    func2()
    func3()
    习题
    111
    222
    333
    结果

     

  • 相关阅读:
    Linux:grep 命令
    Linux:sort
    Java中路径相关的获取方式
    Spring boot 配置 Tomcat 临时文件缓存目录
    zabbix :web 界面显示的监控项值为0或者空
    Maven:禁止编码指定类型的资源文件
    Maven:element '******' cannot have character [children]
    MySQL:数据库名或者数据表名包含-
    Linux:sed
    Lucene 6.0下使用IK分词器
  • 原文地址:https://www.cnblogs.com/juxiansheng/p/9041398.html
Copyright © 2011-2022 走看看