Python 入门基础 - 高级用法
枚举类型 python2 不支持枚举。。
Pyhon3 新引入枚举
枚举实质就是个类
三元表达式
x大于y, 返回x, 否则返回 y
Java:
x>y ? x : y
Python:条件为真时返回的结果 if 条件判断 else 条件为假时的返回结果
x if x>y else y
函数式编程:闭包
闭包是一种思维方式, 减少全局变量的改变
闭包 = 函数+环境变, 在第35行返回一个数,第36行要返回一个函数,才能生成闭包
意义:保存函数现场
对闭包的理解:
闭包实例:
使用非闭包形式:
使用闭包形式(python3),避免了更改全局变量的方式
匿名函数 Lamda, 如下图所示,将一个lambda 匿名函数 赋值给一个变量f
冒号后面是表达式,不能是一个赋值函数或者代码块等 , 一般会接入一个三元表达式
map 类, 理解为一个映射 (也可以理解为一个for循环)
map 和 lambda 一起使用:
与上面的square实现的是同样的内容,但相比更加简洁
python 3:
map lambda 并不能提高运行效率, 只是使得代码更加简洁一些
reduce 函数,连续调用lambda,将上一次计算结果当作输入 给x,另外一个列表的值 作为y
((((1+2)+3)+4)+5)+6)...
10 作为reduce初始值,运算时,x=10, y=1, 是先加10, 而不是等都算完了之后 再加10的
Filter , 筛选
filter / map 均返回list,
reduce 返回一个值
装饰器