闭包,装饰器

结果含义表示

200 OK 资源有,成功

404资源不存在

500服务器内部错误


闭包

闭包的本质就是函数嵌套,就是在函数里面定义函数,

内部函数可以引用外部函数的参数和变量

参数和变量不会被垃圾回收机制给回收

闭包的用途:可以存循环的索引值、做私有变量计数器


x = 300

def test1():

x = 200

def test2():

x = 100

print('----1---x=%d'%x)

return test2

t1 = test1()

t1()


装饰器

装饰器就是用于拓展函数功能的一种函数,它的特殊之处,在于它的返回值也是一个函数,使用装饰器的好处就是,在不用更改原函数代码的前提下,给函数增加新的功能


def outsidel1(test):

print('执行了装饰器外部函数1')

def inside(*args,**kwargs):

# 前者元祖 后者字典

print('welcome1')

return test(*args,**kwargs)

return inside

def outsidel2(test):

print('执行了装饰器外部函数2')

def inside(*args,**kwargs):

# 前者元祖 后者字典

print('welcome2')

return test(*args,**kwargs)

return inside

def func():

print('hello world')

# a = outsidel(func)

# a()

@outsidel1

@outsidel2

def func(*args,**kwargs)

print(kwargs)

#func([1,2,3])

func(a = 1, b = 2)

你可能感兴趣的:(闭包,装饰器)