Python之闭包装饰器
admin
2023-07-24 23:02:58
0

1.什么是闭包?
多层函数嵌套,(函数里面还有定义函数,一般是两个),往往内层函数会用到外层函数的变量,把内层函数以及外部函数的变量当成一个特殊的对象,这就是闭包。闭包比面向对象更纯净、更轻量,既有数据又有执行数据的代码;比普通函数功能更强大,不仅有代码还有数据;
2.匿名函数、普通函数、闭包、面向对象的区别?
1). 匿名函数能够完成基本的简单功能,传递是这个函数的引用 只有功能。
2). 普通函数能够完成较为复杂的功能,传递是这个函数的引用 只有功能。
3). 闭包能够将较为复杂的功能,传递是这个闭包中的函数以及数据。
4). 对象能够完成最为复杂的功能,传递是数据+功能,但占用大量空间,浪费资源。
3.什么是装饰器?
利用闭包的基本原理,对一个目标函数进行装饰,即在执行一个目标函数之前、之后执行一些特定的事情。
通用的装饰器示例如下:
def set_func(func):
print("---开始进行装饰")
def call_func(*args, kwargs):
print("---这是目标函数之前做的事情----") # 如果需要的话
ret = func(*args, * kwargs) # 拆包
print("---这是目标函数之后做的事情----") # 如果需要的话
return ret # 如果需要有返回值的话可以加上返回值
return call_func
@set_func # 相当于 test1 = set_func(test1)
def test1(
args,
kwargs):
"""函数内部要做的功能"""
return "ok" # 如果需要的话,否则就返回None

相关内容

热门资讯

女子与七旬大爷交往留下8月大男... 73岁大爷周某与女子高某通过朋友认识交往,高某带着孩子到周某家中并与其发生关系,次日高某将8个月大的...
法国4名幼儿热亡超55人溺亡!... 在欧洲遭遇破纪录高温之际,极端天气已成为公共安全与社会福利面临的严峻挑战。这场席卷欧洲的极端高温预计...
“为什么不用核武器?” 俄罗斯... 乌克兰近来加大了对俄罗斯的无人机袭击,甚至袭击了莫斯科地区最大的燃料供应商的炼油厂,引发火灾。俄罗斯...
华尔街日报:不要空调,我们是法... 欧洲人宁愿忍受酷暑,也不愿用现代的方式降温。2026年6月25日法国和欧洲大部分地区酷热难耐,一些地...
廿载为桥 百校筑梦 万生奔赴 ... 6月26日,由河南省教育考试院主办、黄河科技学院承办的,为期两天的2026年河南普通高招现场咨询会在...
“裂缝能塞进两个拳头,混凝土层... “地面裂缝能塞进两个拳头,混凝土层下竟是7米多深的松软回填土!”近日,惠州市惠城区小金口街道龙湖雅居...
空调关不上是什么原因 原因:是空调的干燥防霉功能造成的。解决方法:此功能为默认设置,如果确实需要终止干燥防霉功能运行,可在...
热水器水不够热怎么办 如果热水器的水不够热,可能是由于以下原因:1. 电源问题:检查热水器是否已连接到电源上或插座是否已连...
空调制冷一下冷一下热是什么原因 1、非常有可能是因为空调内部的制冷剂出现泄漏,就会导致这种空调打开之后冷一下,然后再热的情况。2、还...
中央空调不够冷是什么原因 1、这个问题主要的原因可能是由于空调缺氟而引起。2、可能是由于室外机周围的温度过高而引起,室外机安装...