Python中的装饰器详细介绍

Python 装饰器

创新互联专注于龙安企业网站建设,响应式网站设计,商城网站定制开发。龙安网站建设公司,为龙安等地区提供建站服务。全流程按需策划,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

一、装饰器定义

二、装饰器知识储备

三、高阶函数

1.高阶函数定义:

2.高阶函数的示范

3.高阶函数的总结

四、函数嵌套

五、闭包

Python 装饰器

一、装饰器定义

装饰器本质就是函数,功能是为其他函数添加附加功能

原则:

1)不修改被修饰函数的源代码

2)不修改被修饰函数的调用方式

二、装饰器知识储备

装饰器 = 高阶函数 + 函数嵌套 + 闭包

三、高阶函数

1.高阶函数定义:

函数接受的参数是一个函数名

函数的返回值是一个函数名

满足上述条件任意一个都可以称之为高阶函数

2.高阶函数的示范

把函数当做参数传给高阶函数

import time

def foo():

time.sleep(1)

print('你好刘力菲')

def test(func):

print(func)

start_time = time.time()

func()

stop_time = time.time()

print('函数运行时间是 %s' % (stop_time - start_time))

foo()郑州人流多少钱 http://www.hnmt120.com/

test(foo)

可以看到foo函数又在test函数中执行了一遍

3.高阶函数的总结

函数接受的参数是一个函数名

作用:在不修改函数源代码的前提下,为函数添加新功能

不足:会改变函数的调用方式

函数的返回值是一个函数名

作用:不修改函数的调用方式

不足:不能添加新功能

四、函数嵌套

函数嵌套就是在函数里面在定义函数

def func():

pass

def func1():

pass

def func2():

pass

pass

五、闭包

在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包

例子

def func(a):

aa=11

def func1():

c=a+aa

print(c)

return func1

使用闭包的过程中,一旦外函数被调用一次返回了内函数的引用,虽然每次调用内函数,是开启一个函数执行过后消亡,但是闭包变量实际上只有一份,每次开启内函数都在使用同一份闭包变量

def outer(x):

def inner(y):

nonlocal x

x+=y

return x

return inner

a=outer(100)

print(a(50))

print(a(100))


分享标题:Python中的装饰器详细介绍
URL分享:http://ybzwz.com/article/psjepo.html