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 返回一个值

 

装饰器  -- AOP 思想 (面向切面编程)

没有改变原来的调用方式, 如果不用装饰器,也可以用其它方式实现,但在调用时 需要改变调用函数

不需要参数的:

===> 

这里抽象参数 装饰器的参数不确定会 所以定义了 多参数列表:

*args 多参数

*kw 关键参数

  ===>  

 

装饰器体现了 不破坏代码实现 代码逻辑更新

常见用法:flask?。。@api.route

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值