引用计数、垃圾回收、内存池机制
- 引用计数:每个对象都有指向该对象的引用总数
- 垃圾回收:当Python的某个对象的引用计数降为0时,说明没有任何引用指向该对象,该对象就成为要被回收的垃圾。
- 内存池机制:Python中有分为大内存和小内存(256K为界限分大小内存): 1、大内存使用malloc进行分配;2、小内存使用内存池进行分配。
-
浅拷贝:id相同,指向同一个对象,对于可变对象,值改变时会同时改变,对于不可变对象,当值发生改变时则会重新分配空间。
-
深拷贝:id不同,在新开辟的内存地址中存放新的对象。
通常来讲不可变元素包含:
int, float, complex, long, str, unicode, tuple(特别注意str)
-
可迭代对象包含迭代器。
-
如果一个对象拥有
__iter__
方法,其是可迭代对象;如果一个对象拥有next
方法,其是迭代器。 -
定义可迭代对象,必须实现
__iter__
方法;定义迭代器,必须实现__iter__
和next
方法。 -
生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅“记住”了它的数据状态,生成还记住了程序执行的位置。
- 快速排序算法:首先选取一个分界值,通过分界值将大于或等于的数据集中到数组右边,小于分界值的数据集中在左边,然后左边和右边再独立排序,形成一个递归逻辑直到左右两边完全排序。
-
高斯滤波平滑图像,去除噪声;
-
求取图像的梯度和梯度方向;
-
NMS非极大值抑制算法剔除边界中多余的像素;
-
双门限法确定可能存在的边界;
-
强相关和弱相关,强相关一般是与强边界相连,弱相关则有可能是因为噪声原因。