博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习第十一天 装饰器
阅读量:5151 次
发布时间:2019-06-13

本文共 2598 字,大约阅读时间需要 8 分钟。

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 # # 讲解元旦作业 扩展装饰器
 

转载于:https://www.cnblogs.com/xubohua/p/8169126.html

你可能感兴趣的文章
css position
查看>>
【bzoj2788】Festival
查看>>
执行gem install dryrun错误
查看>>
Java SE之正则表达式一:概述
查看>>
广义表
查看>>
HTML5简单入门系列(四)
查看>>
AndroidStudio快捷键
查看>>
实现字符串反转
查看>>
转载:《TypeScript 中文入门教程》 5、命名空间和模块
查看>>
苹果开发中常用英语单词
查看>>
[USACO 1.4.3]等差数列
查看>>
Shader Overview
查看>>
Reveal 配置与使用
查看>>
Java中反射的学习与理解(一)
查看>>
nginx配置socket服务
查看>>
C语言初学 俩数相除问题
查看>>
B/S和C/S架构的区别
查看>>
[Java] Java record
查看>>
jQuery - 控制元素显示、隐藏、切换、滑动的方法
查看>>
postgresql学习文档
查看>>