zoukankan      html  css  js  c++  java
  • python学习之老男孩python全栈第九期_day011知识点总结

    # 装饰器的形成的过程:最简单的装饰器;有返回值的;有一个参数的;万能参数
    # 装饰器的作用
    # 原则:开放封闭原则
    # 语法糖
    # 装饰器的固定模式:
    # def wrapper(f): # 装饰器函数,f是被装饰的函数
    # def inner(*args,**kwargs):
    # '''在被装饰函数之前要做的事'''
    # res = f(*args,**kwargs) # 被装饰的函数
    # '''在被装饰函数之后要做的事'''
    # return res
    # return inner

    import time
    # print(time.time()) # 获取当前时间
    # time.sleep(5) # 让程序在执行到这个位置的时候停一会

    # def func():
    # '''
    # 计算程序运行所用时间
    # :return: 程序运行时间
    # '''
    # start = time.time()
    # print('老板好,同事好,大家好')
    # time.sleep(0.01)
    # end = time.time()
    # print(end - start)
    # func()

    # def timer(f): # 专门写一个函数,计算函数执行时间
    # start = time.time()
    # f()
    # end = time.time()
    # print(end - start)
    # def func():
    # time.sleep(0.01)
    # print('老板好,同事好,大家好')
    # timer(func)


    # def timer(f): # 装饰器函数
    # def inner():
    # start = time.time()
    # res = f() # 被装饰的函数
    # end = time.time()
    # print(end - start)
    # return res
    # return inner
    # @timer # 等于func = timer(func) 语法糖, @装饰器函数名,紧跟被装饰的函数
    # def func(): # 被装饰的函数
    # time.sleep(0.01)
    # print('老板好,同事好,大家好')
    # return '新年好'
    # # func = timer(func)
    # res = func()
    # print(res)

    # 装饰器的作用:不想修改函数的调用方式, 但是还想在原来的函数前后添加功能
    # timer就是一个装饰器函数,只是对一个函数 有一些装饰作用

    # 原则:开放封闭原则
    # 开放:对扩展是开放的
    # 封闭:读修改是封闭的

    #
    # def outer():
    # def inner():
    # return 'inner'
    # inner()
    # outer()
    #----------------------------------------------------------------------------------------------------------------

    # 装饰带参数函数的装饰器
    # def timer(f): # 装饰器函数
    # def inner(*args,**kwargs):
    # start = time.time()
    # res = f(*args,**kwargs) # 被装饰的函数
    # end = time.time()
    # print(end - start)
    # return res
    # return inner
    # @timer # 等于func = timer(func) 语法糖, @装饰器函数名,紧跟被装饰的函数
    # def func(a,b): # 被装饰的函数
    # time.sleep(0.01)
    # print('老板好,同事好,大家好',a,b)
    # return '新年好'
    #
    # @timer
    # def func1(a): # 被装饰的函数
    # time.sleep(0.01)
    # print('老板好,同事好,大家好',a)
    # return '新年好'
    # res = func(1,b = 2)
    # ret = func1(1)
    # print(res,ret)


    #--------------------------------------------------------------------------------------------------------
    def wrapper(f): # 装饰器函数,f是被装饰的函数
    def inner(*args,**kwargs):
    '''在被装饰函数之前要做的事'''
    res = f(*args,**kwargs) # 被装饰的函数
    '''在被装饰函数之后要做的事'''
    return res
    return inner

    @wrapper
    def func(a,b): # 被装饰的函数
    time.sleep(0.01)
    print('老板好,同事好,大家好',a,b)
    return '新年好'
    res = func(1,b = 2)
    print(res)
  • 相关阅读:
    XML错误信息Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans-4.0.xsd). For more information, right click on the message in the Problems View ...
    Description Resource Path Location Type Cannot change version of project facet Dynamic Web Module to 2.3.
    maven创建web报错Cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins:maven-compiler-plugin:maven-compiler-plugin:3.5.1:runtime Cause: error in opening zip file
    AJAX跨域
    JavaWeb学习总结(转载)
    JDBC学习笔记
    Java动态代理之JDK实现和CGlib实现
    (转)看懂UML类图
    spring boot配置使用fastjson
    python3下django连接mysql数据库
  • 原文地址:https://www.cnblogs.com/lpgit/p/9292038.html
Copyright © 2011-2022 走看看