首页 > 编程语言 > 详细

python学习笔记16-装饰器

时间:2019-04-11 14:47:14      阅读:108      评论:0      收藏:0      [点我收藏+]

装饰器(函数)

1.函数作用域

2.高阶函数 把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。

3.闭包  闭包就是能够读取其他函数内部变量的函数。

在本质上,闭包是将函数内部和函数外部连接起来的桥梁
如果一个内部函数里,对在外部作用域(但不是全局作用域)的变量进行引用,那么内部函数被认为是闭包
closure
闭包-函数+定义函数时的环境
def outer():
    x=10
    def inner(): #inner就是内部函数
        print(x) #外部环境的一个变量
    return inner  #内部函数inner就是一个闭包函数

#以下可以取到inner
outer()()
#下面执行的时候 f()能取到x的值 就是因为inner时一个闭包函数
f=outer()  
f()

#inner()  不行 局部变量 全局无法使用

写代码的时候有一个开放封闭原则 

解决一些重复功能

import time

def foo():
    print(foo      )
    time.sleep(2)

def bar():
    print(bar      )
    time.sleep(3)

def show_time(f):
    start_time=time.time()
    f()
    end_time=time.time()
    time=end_time-start_time
    print(time)

 

装饰器:

import time

#装饰器函数
def show_time(f):
    def inner():
        start_time=time.time()
        f()
        end_time=time.time()
        time=end_time-start_time
        print(time)
        return inner

@show_time  等价于 foo=show_time(foo)
def foo():
    print(foo      )
    time.sleep(2)

@show_time
def bar():
    print(bar      )
    time.sleep(3)

    

 

python学习笔记16-装饰器

原文:https://www.cnblogs.com/zhwforever/p/10689285.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!