闭包函数与装饰器

一、名称空间的作用域

1.什么是名称空间

用于储存变量名与变量值关系的地方

2.名称空间的作用域是什么

名称空间的作用范围叫做名称空间的作用域

3.名称空间的作用域的分类

内置名称空间:程序的任何阶段,任何时间都有效(全局有效)

全局名称空间:程序的任何阶段,任何时间都有效(全局有效)

局部名称空间:一般情况下只在局部有效

二、global与nonlocal关键字的使用

1.如何在局部修改全局的数据

局部修改全局数据有两种情况,如果修改的是不可变数据类型,则需要使用global声明,如果修改的是可变类型数据则不需使用global。

情况一:需要使用

情况二:无需使用

2.如何在局部修改外局部数据

三、函数对象

1.函数对象的定义

函数也可以作为”数据“进行使用

2.函数的对象的用法

用法1:函数名可以当作变量名赋值

用法2:函数名可以当作函数的实参

直接打印函数名输出:函数的内存地址

直接打印函数的调用,输出:函数的返回值,return

当一个函数的调用结果传给另一个函数形参时,首先这个函数需要运行,然后再将其返回值传给其他函数运用

用法3:函数名可以当作函数的返回值

用法4:函数可以当作容器类型的元素

 

四、函数的嵌套调用

1.定义

函数内部调用其他函数

2.嵌套调用死循环

 

不要互相调用,你的电脑会崩溃的

五、函数的嵌套定义

1.定义

在函数体内部定义其他函数。

2.作用

将复杂的部分隐藏起来,只暴露简单的接口

六、闭包函数

1.定义

在函数体内部定义的函数,并且使用外部函数名称空间的名字

2.函数传参的两种方式

方式1:闭包函数传参

方式2:直接在函数括号内定义形参

七、装饰器

1.装饰器的由来

装饰器是由函数对象,名称空间,闭包函数组合而来的

2.装饰器的核心思想

装饰器的核心思想是,在不改变函数的内部代码以及调用方式的情况下,给函数增加新的功能

3.装饰器的原则

开放封闭原则:对扩展开放,对修改封闭

posted @ 2021-11-16 19:54  recordlife  阅读(37)  评论(0编辑  收藏  举报