Python面试题集答案(1)

本文介绍了Python的内存管理机制,包括引用计数、内存池和垃圾回收等关键概念,并探讨了lambda函数及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python面试题集

1、Python是如何进行内存管理的?

一般的高级语言都有内存管理,垃圾回收的机制。这种垃圾回收机制一般都不会只采用一种方式实现,为了最效率的进行垃圾回收,一般采用一种为主,多种方式混合的内存管理方式。

1、python引入计数器的机制进行内存管理。

对象创建时创建一个引用计数,当这个引用计数为0时,对象被回收。

计数器顾名思义,就是标志python对象被引用的次数。

在这里涉及到面向对象的概念,有句话叫做python的一切都是对象,

在赋值语句中  a = 0,其中的0代表是一个值为0的、占据内存的对象,a是这个对象的别名;


计数器的值增加的情况包括:

a.创建对象,例如 a=0

b.其他创建的对象被指向了已经创建的对象,例如 b=a

c.方法的参数

d.容器对象的元素


计数器减少的情况包括:

a.对象别名被赋予其他对象,例如 a=1

b.对象别名被销毁,例如 del a

c.引用离开作用域,如方法结束,方法中的引用减少

d.对象从容器中移除,或者容器被销毁

2、python引入内存池机制

预先申请一定数量内存留作备用,当对象被创建时,优先从内存池中分配内存。不够了在申请新的内存。

从而减少内存碎片,提升效率。


3、垃圾回收

垃圾回收器定按照一定的算法,去检索引用计数为0的对象,并清除其内存空间。

当两个对象互相引用而没有其他引用时,也会被垃圾回收器释放。


2、什么是lambda函数?它有什么好处?

lambda函数也叫匿名函数,也就是说没有函数名。

举一个简单例子,在申请加入某python的QQ群时,申请的条件是写出一个匿名求和公式

答案是:f = lambda x, y : x + y

在这个语句中,冒号前是参数,多个参数由逗号间隔;冒号后是表达式。


个人理解lamdba函数的好处主要有两点:

1.精简代码,省去定义函数的过程。

2.对于一些不会复用,不好起名字的函数,使用lamdba函数比较方便。

缺点是略复杂时会降低代码可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值