202209-18 python闭包和装饰器你了解吗 目录一、闭包1.什么是闭包?2.形成闭包的三个条件(缺一不可)3.闭包的原理4.闭包的好处二、装饰器1.什么是装饰器2.装饰器有什么用3. 小练习三.编写和使用装饰器1.小案例2.应用注意事项3.保留元数据-什么是元数据4.保留元数据-装饰器后为什么元数据会丢失5.保留元数据6.小案例7.内置的装饰器四.装饰器的应用1.为什么使用装饰器2.在何处使用装饰器五.课后作业1.实现函数注册表2.完善三创购物系统总结一、闭包1.什么... 继续阅读 >
202111-01 理解python中装饰器的作用 装饰器的作用就是用一个新函数封装旧函数(是旧函数代码不变的情况下增加功能)然后会返回一个新函数,新函数就叫做装饰器,一般为了简化装饰器会用语法糖@新函数来简化例子:这是一段代码,但功能太少,要对这个进行增强,但又不能改变代码。defhello():return"helloworld!"现在我们的需求是要增强hello()函数的功能,希望给返回加上HTML标签,比如<i>helloworld</i>,但要求我们不得改变hello()函数原来的定义。defmakei... 继续阅读 >
202110-16 详解Python装饰器 给你的咖啡加点料 一、函数回顾1、在python中函数是一等公民,函数也是对象。我们可以把函数赋予变量。defmake_cofe(type):print('获得一杯:{}'.format(type))get_cofe=make_cofeget_cofe('咖啡')####输出#####获得一杯:咖啡这个例子中,我们把函数make_cofe赋予了变量get_cofe,这样之后你调用get_cofe,就相当于是调用函数make_cofe()。2、把函数当作参数,传入另一个函数中。defmake_cofe(type):print('... 继续阅读 >
202109-13 浅谈Python从全局与局部变量到装饰器的相关知识 全局变量与局部变量#num1是全局变量num1=1#num2是局部变量deffunc():num2=2在函数外(且不在函数里)定义的变量是全局变量;在函数里定义的变量是局部变量。在函数外无法引用局部变量,但在函数里面可以引用全局变量,不过需要注意的是,一般函数里不能修改全局变量,如果在函数里修改全局变量,那么python会自动创建一个与之名字相同的变量,使用global关键字可以将局部变量变为全局变量,进而修改。#这是全局变量num1... 继续阅读 >
202108-12 Python必备基础之闭包和装饰器知识总结 目录一、闭包1.1三要素1.2语法1.3优点1.4缺点1.5作用二、装饰器Decorator2.1定义2.2语法2.3本质2.4装饰器链一、闭包1.1三要素必须有一个内嵌函数内嵌函数必须引用外部函数中变量外部函数返回值必须是内嵌函数1.2语法#语法def外部函数名(参数):外部变量def内部函数名(参数):使用外部变量return内部函数名#调用变量=外部函数名(参数)变量(参数)举个例子deffunc01():#外部函数a=1#外... 继续阅读 >
202107-12 详解Python装饰器之@property 一、property()函数讲解了解@property装饰器之前,我们首先要了解内置函数的property()。classproperty(fget=None,fset=None,fdel=None,doc=None)描述:返回property属性。参数说明:fget——获取属性值的函数。fset——设置属性值的函数。fdel——删除属性值函数。doc——property属性的文档字符串,如果没有给出doc,则该property将拷贝fget的文档字符串(如果存在)。返回值:... 继续阅读 >
202106-23 python高级语法之闭包和装饰器详解 一、闭包闭包的形成条件:1.函数嵌套。2.内部函数使用了外部函数的变量或者参数。3.外部函数返回了使用外部变量的内部函数。二、一个简单的例子deffunc_out(num1):definner(num2):res=num1+num2print(res)returninner#a=func_out(10)(10)a=func_out(10)a(10)闭包修改外部函数的变量:在闭包内修改外部函数的变量需要使用nonlocal关键字deffunc_out():#外部函数的变量num1=10... 继续阅读 >
202105-29 Python pytest装饰器总结(实例详解) 几个常用装饰器pytest.ini配置文件例子:[pytest]addopts=-v-s--html=py_test/scripts/report/report.html-pno:warnings--reruns=10testpaths=./py_test/scriptspython_files=test_rerun.pypython_classes=Test*python_function=test*xfail_strict=trueaddopts:OPTS命令行参数集-s:表示输出调试信息,包括print打印的信息-v:显示更详细的信息-vs:这两个参数一起用-n:支持多线程或者分布式运行测试用例... 继续阅读 >
202105-15 python基础之装饰器详解 一、前言装饰器:本质就是函数,功能是为其他函数添加附加功能原则: 1、不修改被修饰函数的源代码 2、不修改被修饰函数的调用方式装饰器=高阶函数+函数嵌套+闭包二、高阶函数高阶函数定义: 1、函数接收的参数是一个函数 2、函数的返回值是一个函数名 3、满足上述条件任意一个,都可以称为高阶函数test函... 继续阅读 >
202103-02 python装饰器代码深入讲解 python装饰器就是用于扩展原函数功能的一种函数,这个函数特殊的地方就是它的返回值也是一个函数,使用Python装饰器的一个好处就是:在不需要修改原函数代码的情况下,给函数增加新的功能。先来看个例子:defsay():print('Niceday')say()#这个函数的输出为:Niceday现在,我想在输出Niceday的前面再打印一行****************,类似下面的效果:**************** Niceday一般情况下,我可以修改上面的代码:defsay():... 继续阅读 >
202010-10 通俗易懂了解Python装饰器原理 作用装饰器可以用于用于装饰一个函数或方法,使得在不修改原函数、方法代码的前提下,为方法添加前置或后置操作;例如突然想要计算一下各个函数的执行时间,又不希望在每一个函数中添加tim.time()来计算执行时间用法装饰器的写法网上很多,但是我觉得还是尽量先理解,再知道怎么写会比较好,所以会先说如何理解,在后面重写用法实现了解装饰器是如何实现的,远比会写装饰器更重要,简单的说装饰器就是接收一个函数对象,然后先执行... 继续阅读 >
202010-10 python装饰器实现对异常代码出现进行自动监控的实现方法 异常,不应该存在,但是我们有时候会遇到这样的情况,比如我们监控服务器的时候,每一秒去采集一次信息,那么有一秒没有采集到我们想要的信息,但是下一秒采集到了,而后每次的采集都能采集到,就那么一次采集不到,我们应该针对这一次采集不到进行分析吗,这种的情况可以说无法重复出现,我们也无法避免,因为外界的因素太多太多,我们无法去控制这些外面的因素,所以我们会有这样的需求,一段时间内出现频率多少次,我们才能显... 继续阅读 >