码迷,mamicode.com
首页 > 编程语言 > 详细

python重要知识点(不断更新)

时间:2015-11-09 00:06:27      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

Python简洁优雅,库丰富而强大,特别是在数据分析领域,有着重要的地位。

下面是我学习中总结的一些重要,容易忘记的知识点

 

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

先说明一点,Python每创建一个对象,这个对象都是一个三元组(标识,类型,值)。当我们调用一个对象时一般是按引用传递,

有必要时才按值传递。(按引用不新建对象,按值则会新建对象)

1.引用计数机制

创建对象后,每分配一个名称或将对象放入一个容器时,该对象的引用计数都会增加;

每del一个名称或者引用超出作用域或者被重新赋值时,该对象的引用计数就会减少。

当引用计数归零时,它将被垃圾收集机制处理掉。

2.内存池机制

Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。

Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象则使用系统的 malloc。

其中不同类型的对象,如整数,浮点数和List,都有其独立的私有内存池,对象间不共享内存池。

 

二、try…except…except…[else…][finally…]

python先尝试执行try下语句:

若异常,则分别与数个except异常匹配,并执行相匹配的except语句,若都不匹配则异常会传递到最高层try中,最后执行fanally语句;

若无异常,则执行else语句,最后执行fanally语句。

以下示例代码,大家可以试运行下,帮助记忆

 1 def exceptTest():
 2     try:
 3         print doing some work, and maybe exception will be raised
 4         raise IndexError(index error)
 5         #print ‘after exception raise‘
 6         #return 0
 7 
 8     except KeyError, e:
 9         print in KeyError except
10         print e
11         #return 1
12     except IndexError, e:
13         print in IndexError except
14         print e
15         #return 2
16     except ZeroDivisionError, e:
17         print in ZeroDivisionError
18         print e
19         #return 3
20     else:
21         print no exception
22         return 4
23     finally:
24         print in finally
25         #return 5
26 
27 resultCode = exceptTest()
28 print resultCode

 

python重要知识点(不断更新)

标签:

原文地址:http://www.cnblogs.com/weiqiutiandao/p/4948599.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!