博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
装饰器
阅读量:5786 次
发布时间:2019-06-18

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

一.准备知识

1.函数作用域 :  由内到外优先级减小   【L(嵌套函数定义的变量)_E(函数内定义的变量)_G(全局变量)_B(系统默认定义变量)】

2.高阶函数 :(1) 函数名可以作为参数输入

                      (2) 函数名可以作为返回值

3.闭包: 在一个内部函数里,对外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包。

二.概念

装饰器是个函数,它是为其他函数增加功能用的。

import time # 装饰器函数    //给f1,f2函数加上显示函数运行时间的功能 def logger(kal=""):#添加装饰器参数     def show_time(f):         def inter(*x,**y):             start=time.time()             f(*x,**y)             end=time.time()             print("spand %s"%(end-start))             if kal=="ture":                 print("打印日志")         return inter     return show_time @logger("ture") # @show_time#f1=show_time(f1) def f1():     print("f1   time")     time.sleep(2) @logger() # @show_time def f2():     print("f2    time")     time.sleep(3) @logger("ture") # @show_time def f3(*a,**b):#加任意参数都可以     s=0     for i in a:         s+=i     print(s)     time.sleep(1) f3(1,2,3,5,7) f1() f2()

转载于:https://www.cnblogs.com/zbooo/p/8686567.html

你可能感兴趣的文章
Maven中如何配置WAR依赖WAR和JAR的多模块项目结构
查看>>
最长公共子序列
查看>>
Thread的run()与start()的区别
查看>>
hadoop上传文件报错
查看>>
requirejs 学习笔记 0
查看>>
centos7 端口相关操作
查看>>
bootstrap3 - 分页
查看>>
Linux中Kill进程的N种方法
查看>>
【MongoDB系列】:MongoDB 查询应用
查看>>
printFinal用法示例
查看>>
HBuilder从下载到使用
查看>>
【JavaScript高级程序设计】--第1章 JavaScript简介
查看>>
计时器,3分钟停止
查看>>
Nginx + uWSGI + Flask + Vhost
查看>>
金缕曲二首
查看>>
PhotoManage
查看>>
ffmpeg转h264格式的视频
查看>>
概率与信息论---贝叶斯规则
查看>>
从“黑掉Github”学Web安全开发
查看>>
iphone按钮圆角的问题
查看>>