-
变量作用域
-
局部作用域
-
全局作用域
-
-
高阶函数
-
函数名可以作为参数输入
-
函数名可以作为返回值
-
-
闭包
-
示例代码
def outer():
x = 10
def inner():
print(x)
return inner -
定义
如果在一个内部函数里,对在外部作用域(不在大全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)
-
说明
inner是一个内部函数,inner里引用了外部作用域的变量x(x在外部作用域outer里面,但是不是全局作用域),则这个内部函数inner就是一个闭包
-
-
装饰器
-
示例代码
import time
# 实现装饰器类
def show_time(func):
def inner(*args, **kwargs):
start = time.time()
func(*args,**kwargs)
end = time.time()
return end-start
return inner
# 系统写法,简洁优雅 -
示例效果
-
作用
添加额外的功能
-
装饰器参数
-
通过外嵌一个函数实现
-
示例代码
import time
def logger(flags=False):
# 实现装饰器类
def show_time(func):
def inner(*args, **kwargs):
start = time.time()
func(*args,**kwargs)
end = time.time()
if flags:
print("启动记录日志的功能")
return end-start
return inner
return show_time
# 系统写法,简洁优雅 -
示例效果
-
-