装饰器(函数)
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)
原文:https://www.cnblogs.com/zhwforever/p/10689285.html