-
Python垃圾回收机制
- Python GC主要使用引用计数(referencecounting)来跟踪和回收垃圾。在引用计数的基础上,通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用问题,通过“分代回收”(generationcollection)以空间换时间的方法提高垃圾回收效率。
-
Python 内存管理机制
- 第0层是操作系统提供的内存管理接口,如malloc、free
- 第1层是Python基于第0层操作系统的内存管理接口包装而成的,主要是为了处理与平台相关的内存分配行为。
- 第2层 以PyObje_为前缀的函数族,主要提供创建Python对象的接口。包括了gc内存管理机制
- 第3层 对象缓冲池机制
- Python引入了内存池机制, 用于管理对小块内存的申请和释放
-
谈一谈Python的装饰器(decorator)
- 装饰器本质上是一个Python函数,它可以让其它函数在不作任何变动的情况下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景。比如:插入日志、性能测试、事务处理、缓存、权限校验等。有了装饰器我们就可以抽离出大量的与函数功能无关的雷同代码进行重用。
-
说明os sys 模块不同,并列举常用的模块方法?
- os模板提供了一种方便的使用操作系统函数的方法
- sys模板可供访问由解释器使用或维护的变量和与解释器交互的函数
- os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口。sys模块负责程序与Python解释器的交互,提供了一系列的函数和变量用户操作Python运行时的环境。
-
什么是lambda表达式?它有什么好处?
- 简单来说,lambda表达式通常是当你需要使用一个函数,但是又不想费脑袋去命名一个函数的时候使用,也就是通常所说的匿名函数。
-
__new__和__init__的区别
- __name__:一种约定,Python内部的名字,用来与用户自定义的名字区分开,防止冲突
- _name:一种约定,用来指定变量私有
- __name:解释器用_classname__name来代替这个名字用以区别和其他类相同的命名