Python哪些知识重要
1个回答
展开全部
一、Python是如何进行内存管理的?
先说明一点,Python每创建一个对象,这个对象都是一个三元组(标识,类型,值)。当我们调用一个对象时一般是按引用传递,
有必要时才按值传递。(按引用不新建对象,按值则会新建对象)
1.引用计数机制
创建对象后,每分配一个名称或将对象放入一个容器时,该对象的引用计数都会增加;
每del一个名称或者引用超出作用域或者被重新赋值时,该对象的引用计数就会减少。
当引用计数归零时,它将被垃圾收集机制处理掉。
2.内存池机制
Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。
Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象则使用系统的 malloc。
其中不同类型的对象,如整数,浮点数和List,都有其独立的私有内存池,对象间不共享内存池。
二、try…except…except…[else…][finally…]
python先尝试执行try下语句:
若异常,则分别与数个except异常匹配,并执行相匹配的except语句,若都不匹配则异常会传递到最高层try中,最后执行fanally语句;
若无异常,则执行else语句,最后执行fanally语句。
先说明一点,Python每创建一个对象,这个对象都是一个三元组(标识,类型,值)。当我们调用一个对象时一般是按引用传递,
有必要时才按值传递。(按引用不新建对象,按值则会新建对象)
1.引用计数机制
创建对象后,每分配一个名称或将对象放入一个容器时,该对象的引用计数都会增加;
每del一个名称或者引用超出作用域或者被重新赋值时,该对象的引用计数就会减少。
当引用计数归零时,它将被垃圾收集机制处理掉。
2.内存池机制
Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。
Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象则使用系统的 malloc。
其中不同类型的对象,如整数,浮点数和List,都有其独立的私有内存池,对象间不共享内存池。
二、try…except…except…[else…][finally…]
python先尝试执行try下语句:
若异常,则分别与数个except异常匹配,并执行相匹配的except语句,若都不匹配则异常会传递到最高层try中,最后执行fanally语句;
若无异常,则执行else语句,最后执行fanally语句。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询