zoukankan      html  css  js  c++  java
  • python学习第十一天 装饰器

    1.作业讲解

    # 2、写函数,接收n个数字,求这些参数数字的和。
    def sum_func(*args):
    total = 0
    for i in args:
    total += i
    return total
    print(sum_func(1,2,3,8,23,6))

    # 3、读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?
    # a=10
    # b=20
    # def test5(a,b):
    # print(a,b)
    # c = test5(b,a)
    # print(c)



    # 4、读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?
    # a=10
    # b=20
    # def test5(a,b):
    # a=3
    # b=5
    # print(a,b)
    # c = test5(b,a)
    # print(c)

    2.装饰器
    # 装饰器形成的过程 : 最简单的装饰器 有返回值的 有一个参数 万能参数
    # 装饰器的作用
    # 原则 :开放封闭原则
    # 语法糖 :@
    # 装饰器的固定模式

    #不懂技术


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


    # def timmer(f): #装饰器函数
    # def inner():
    # start = time.time()
    # ret = f() #被装饰的函数
    # end = time.time()
    # print(end - start)
    # return ret
    # return inner
    #
    # @timmer #语法糖 @装饰器函数名
    # def func(): #被装饰的函数
    # time.sleep(0.01)
    # print('老板好同事好大家好')
    # return '新年好'
    # # func = timmer(func)
    # ret = func() #inner()
    # print(ret)
    # 装饰器的作用 —— 不想修改函数的调用方式 但是还想在原来的函数前后添加功能
    # timmer就是一个装饰器函数,只是对一个函数 有一些装饰作用

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

    # 封版

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

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

    # def wrapper(f): #装饰器函数,f是被装饰的函数
    # def inner(*args,**kwargs):
    # '''在被装饰函数之前要做的事'''
    # ret = f(*args,**kwargs) #被装饰的函数
    # '''在被装饰函数之后要做的事'''
    # return ret
    # return inner
    #
    # @wrapper #语法糖 @装饰器函数名
    # def func(a,b): #被装饰的函数
    # time.sleep(0.01)
    # print('老板好同事好大家好',a,b)
    # return '新年好'
    # print(func(1,2))

    # def wrapper():
    # def inner():
    # pass
    # return inner

    # def wrapper(func): #qqxing
    # def inner(*args,**kwargs):
    # ret = func(*args,**kwargs) #被装饰的函数
    # return ret
    # return inner
    #
    # @wrapper #qqxing = wrapper(qqxing)
    # def qqxing():
    # print(123)
    #
    # ret = qqxing() #inner

    #
    # 讲解元旦作业 扩展装饰器




  • 相关阅读:
    欧拉函数
    新博客地址
    socket编程
    文件操作
    python安装扩展”unable to find vcvarsall.bat“的解决办法
    PYTHON以及插件安装
    梯式结构
    PHPSTORM配置
    CSRF攻击
    js的一些奇葩用法
  • 原文地址:https://www.cnblogs.com/xubohua/p/8169126.html
Copyright © 2011-2022 走看看