python第四天学习

我们在程序中如何划分种类呢? 一般用数字代替某一个划分,比如腾讯的会员划分,如下图
在这里插入图片描述
1,代表黄钻 2,代表绿砖,3,代表黑砖 4,代表红钻,但是我们编程,用数字往往不知道或者忘了数字代表的什么了!所以我们python引入了枚举类型(其他编程里面,枚举是数据类型,但是python里面枚举是类)
在这里插入图片描述
在这里插入图片描述
如上图,枚举类里面的各种标签种类,必须用大写, 类似常量

但是列举种类划分,我们python里面的字典,类,一样可以列举,为什么还要引入枚举类呢?
在这里插入图片描述
1,因为枚举里面的标签值可以改变,类里面的也可以改变,但是枚举类里面的标签值不能改变
2,枚举类,可以防止重复的标签值的出现,在普通类里面 一个标签属性可以反复赋值,如下图
在这里插入图片描述

在这里插入图片描述
那如何访问对应的值呢?
在这里插入图片描述

通过value属性可以获得里面值,通过name属性可以获得枚举类里面的标签属性
在这里插入图片描述

枚举可以遍历
在这里插入图片描述

我们把枚举类型对应的数值存储到数据库,当从数据库查找到这个数值时,如何再转为枚举类型呢?就是用枚举类名(数值)就可以转为数值对应的枚举类型
在这里插入图片描述

另一种整型枚举类
在这里插入图片描述

如何让我们设置的属性值不能取重复的值?
在这里插入图片描述

注意:枚举类和普通类的不同点?枚举类不能实例化

在python里面一切皆对象,函数也是对象,一个函数里面的返回值可以是返回的对象,当然返回的也可以是函数,同时函数也可以作为参数传入到一个函数里面去

闭包
在这里插入图片描述

什么是闭包?
在这里插入图片描述
闭包其实就是一个环境,变量f保存了定义变量curve()时,这个环境,也保存了定义这个函数时使用的外部变量(这个外部变量也不能是全局变量)

闭包的注意事项:闭包一定是一个内部函数+外部环境变量(是内部函数外面的同时还不能是全局变量的局部变量)
在这里插入图片描述
在这里插入图片描述

闭包的作用及使用(闭包的环境变量记忆住了上一次调用的数据结果)
在这里插入图片描述
在这里插入图片描述
上图是通过global 把origin确定为是全局变量,通过全局变量的功能来记住每一次运算的结果

下图,我们通过闭包,环境变量来记忆每一次运算的结果
在这里插入图片描述
关键词 是 nonlocal 来指明变量为外部的环境变量,global 是指明变量为全局变量

匿名函数(定义函数时候,不定义函数名)
在这里插入图片描述
匿名函数的关键字 lambda

注意点如下
在这里插入图片描述

python的三元表达式
在这里插入图片描述

map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。map( 操作函数 , 一个序列 )
在这里插入图片描述

map()高阶函数和lambda匿名函数连用
在这里插入图片描述

ruduce()高阶函数
在这里插入图片描述

filter()高阶函数,作用就是把一个序列列表的内的不要的元素过滤掉
在这里插入图片描述
这个filter()函数,要求传入的第一个匿名函数参数,返回值为布尔值或者可有转为真假的数值(比如1或者0)

map() reduce() filter() 都是高阶函数,map() filter()
返回的是各自的对象,可以通过list()转为序列列表,reduce返回的直接是一个运算后的结果数值

装饰器
我们有很多的函数,当我们增加函数功能时候,又不能改变这些函数内部结构和语句时,就需要引入装饰器了!(装饰器只是一个模式,并不是新技术)
在这里插入图片描述
在这里插入图片描述

装饰器就应该统配所有的函数,但是有的函数有一个参数,有的函数没有参数,有的函数有很多的参数,那我们该如何处理呢?(使用可变参数 就可以了 *argu)
在这里插入图片描述

如果函数里面有关键字参数呢?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/steve1988717/article/details/85226462