
1、 闭包
定义:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)(想想Erlang的外层函数传入一个参数a, 内层函数依旧传入一个参数b, 内层函数使用a和b, 最后返回内层函数)
代码
1 2 3 4 5 |
|
2、装饰器
1 2 3 4 5 6 7 8 |
|
3、迭代器
1、可以直接作用于for循环的数据类型
第一类:集合数据类型,如list、tuple、dict、set、str等;
第二类:generator,包括集合定义generator和带yield的generator(也就是generator function)。
以上这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。
可以使用isinstance()判断一个对象是否是Iterable对象:
generator不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了。那么定义来了,可以被next()调用并不断返回下一个值得对象称为迭代器(Iterator)
把list、dict、str等Iterable变成Iterator可以使用iter()函数
4、生成器
为什么使用生成式:
更容易使用,代码量较小内存使用更加高效
5、描述器
描述器的表现
用到三个魔术方法。get() set() delete()
方法签名如下:
object.get(self,instance,owner)
object.set(self,instance,value)
object.delete(self,instance)
Self指指代当前实例,调用者。
Instance是owner的实例。
Owner是属性所属的类。
典型的描述器:@Property
作用:访问类和实例的属性
6、内置模块
re(正则)、math(数学)、os(系统)、datetime、sys、json
sys:
sys.argv
功能:在外部向程序内部传递参数
sys.exit(n)
功能:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。(0是正常退出,其他为异常)
sys.path
功能:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。
sys.modules
功能:sys.modules是一个全局字典,该字典是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。它拥有字典所拥有的一切方法。
7、列表的用法
函数用法:
cmp :比较两个列表的元素
len :列表元素个数
max :返回列表元素值
min :返回列表元素最小值
list :将元组转化为列表
方法:
1 2 3 4 5 6 7 8 9 10 |
|
8、字符串用法
内建函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
9、HTTP/HTTPS协议
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
区别
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
10、高阶函数
Map()、filter()、zip()、reduce()、sorted()、lambda函数
11、深/浅拷贝
浅拷贝:拷贝表面层,更深的层次引用原来地址的
深拷贝:拷贝所有,内存中开辟新地址
12、面向对象编程(OOP)
类是描述具有相同属性和方法的对象的集合,Python中定义类使用class关键字,类的实例叫做对象,类中定义的函数叫做方法。
13、元类
所有类的父类,定义的新类可以看成元类的实例
14、正则
功能函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
15、内存管理
1、 Python引入了一个机制:引用计数
2、 垃圾回收机制:当引用计数为0时,调用del方法
注意:
1、垃圾回收时,Python不能进行其它的任务,频繁的垃圾回收将大大降低Python的工作效率;
2、Python只会在特定条件下,自动启动垃圾回收(垃圾对象少就没必要回收)
3、当Python运行时,会记录其中分配对象(object allocation)和取消分配对象(object deallocation)的次数。当两者的差值高于某个阈值时,垃圾回收才会启动。
3、内存池机制
Python中有分为大内存和小内存:(256K为界限分大小内存)
1、大内存使用malloc进行分配
2、小内存使用内存池进行分配
3、Python的内存池(金字塔)