闭包函数
什么是闭包函数:闭包函数是函数嵌套、函数对象、名称空间和作用域的集合体。
闭包函数必须在函数内部定义,闭包函数可以引用外层函数的名字。
# _*_ coding: gbk _*_ # @Author: Wonder def outer(): def inner(): #代码体 return inner() outer() # 调用闭包函数
装饰器
什么是装饰器:装饰器本身是一个函数,是在不修改其他函数源代码以及调用方式的前提下,给其他函数增加功能的函数。
装饰器遵循开放闭合原则。即对函数功能的添加是开放的,对函数功能的修改是关闭的。
为什么要使用装饰器:解决代码冗余问题,提高代码的可拓展性。
如何使用装饰器:1、编写装饰器,2、调用装饰器。
1、编写装饰器
装饰器的基本结构
def wrappper(func): def inner(*args, **kwargs): #函数执行前应增加的功能 res = func(*args,**kwargs) #函数执行后应增加的功能 return res return inner
2、调用装饰器
def wrappper(func): def inner(*args, **kwargs): #函数执行前应增加的功能 res = func(*args,**kwargs) #函数执行后应增加的功能 return res return inner def func1(*args, **kwargs): # 函数体代码 return func1 = wrappper(func1) func1(0, 1, a=0, b=1) # 增加装饰器的原函数调用方式没变,源代码也没变
python中还提供了解释器的语法糖结构,注意装饰器一定要写在被装饰对象前面。用@符号+装饰器函数名表示
def wrappper(func): def inner(*args, **kwargs): # 函数执行前应增加的功能 res = func(*args, **kwargs) # 函数执行后应增加的功能 return res return inner @wrappper def func1(*args, **kwargs): # 函数体代码 print(‘闭包‘) return func1(0, 1, a=0, b=1) # 增加装饰器的原函数调用方式没变,源代码也没变
原文地址:https://www.cnblogs.com/csic716/p/11842567.html
时间: 2024-10-27 18:52:34