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

本文共 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

你可能感兴趣的文章
配置Apache虚拟目录
查看>>
02.驱动调试
查看>>
C# 动态调用WebService
查看>>
在DataList控件访问子控件的方法
查看>>
EJB 连接DB util -- EntityManagerUtil
查看>>
oracle 创建用户指定表空间 删除用户删除表空间
查看>>
第十周作业
查看>>
Generate Parentheses(组合,回溯)
查看>>
ubuntu桌面进不去,我跪了
查看>>
UVALive - 6912 Prime Switch (状压DP)
查看>>
单元测试基础知识
查看>>
SQLServer数据库查看死锁、堵塞情况
查看>>
模拟window.onerror方法
查看>>
GitHub 上下载代码运行报错 :'The sandbox is not sync with the Podfile.lock\'
查看>>
JS访问或设置cookie的方法+跨域调用方法
查看>>
【为什么用Linux】
查看>>
Kibana+Logstash+Elasticsearch 日志查询系统
查看>>
Bootstrap 笔记
查看>>
关于Linux的缓存内存 Cache Memory详解<转>
查看>>
MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk
查看>>