常见的Python面试题

本文总结了Python面试中的常见问题,包括垃圾回收机制(引用计数、标记清除、分代回收)、Python语言特性(解释型、动态型、面向对象)、多线程的理解(GIL限制)以及代码版本管理(git)和猴子补丁的概念及其影响。
摘要由CSDN通过智能技术生成

引言

面试Python开发岗位时,不仅仅要会手撸代码,还要对Python的原理以及整体的架构有一个了解。下面整理了面试时常问的Python问题。

常见问题

1、python的垃圾回收机制

  • Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题。通过“分代回收”(generation collection)以空间换取时间来进一步提高垃圾回收的效率。
  • 引用计数
    原理:当一个对象的引用被创建或者复制时,对象的引用计数加1;当一个对象的引用被销毁时,对象的引用计数减1;当对象的引用计数减少为0时,就意味着对象已经没有被任何人使用了,可以将其所占用的内存释放了。
    优点:简单,实时
    缺点:
    1、维护引用计数消耗资源
    2、循环引用——致命弱点。(两个对象相互调用)时无法清理内存,发生内存泄露(无法及时清理内存造成系统浪费)。因此有下面两个方法的出现。
  • 标记-清除
    『标记清除(Mark—Sweep)』算法是一种基于追踪回收(tracing GC)技术实现的垃圾回收算法。它分为两个阶段:第一阶段是标记阶段,GC会把所有的『活动对象』打上标记,第二阶段是把那些没有标记的对象『非活动对象』进行回收。
    对象之间通过引用(指针ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值