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

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
时间: 2024-12-23 04:04:57

python重要知识点(不断更新)的相关文章

Python小知识点(持续更新)

1.Python2字符编码 #coding:utf-8 ''' 上面的代码将环境编码设置为utf-8,没有上面的代码,将使用环境默认编码,环境默认编码可由sys.getdefaultencoding()获得 ''' s = '中国' #s是utf-8格式的str,因为上面的代码将环境编码设置为utf-8 u = s.decode('utf-8') #u是unicode对象 s.encode('gbk') #等价于s.decode('utf-8').encode('gbk') ''' 在计算机内存

python Django知识点总结

python Django知识点总结 一.Django创建项目: CMD 终端:Django_admin startproject sitename(文件名) 其他常用命令: 其他常用命令: 通过类创建表--python manage.py makemigrations --python manage.py migrate 其他命令: python manage.py runserver 0.0.0.0 python manage.py stratapp appname python manag

十分钟的Python代码知识点总结

#-- 寻求帮助:dir(obj) # 简单的列出对象obj所包含的方法名称,返回一个字符串列表help(obj.func) # 查询obj.func的具体介绍和用法 #-- 测试类型的三种方法,推荐第三种if type(L) == type([]):print("L is list")if type(L) == list:print("L is list")if isinstance(L, list):print("L is list") #-

python 提交SVN 写更新日志

SCENE = "mjdy_dyhry" DIRS = { "md5/scenes/" + SCENE, "data/tex/scenes/" + SCENE, "data/tex/share", "data/mesh/scenes/" + SCENE, } import os WORKSPACE = "D:/workspace/muData/"#os.getcwd()+ # execu

python 异常知识点

raise from python 在3.0 之后引入了raise from 表达式: raise exception from otherexception 当使用该语法时,第二个表达式指定了另一个异常类或实例,它会附加到引发异常的__cause__属性 注意: python3.0不再支持raise Exc,Args形式,而该形式在Python2.6中仍然可用,在Python3.0中,使用 raise Exc(Args)调用. with  as with语句格式: with expressio

python tips(持续更新)

1. 引用上一层目录 import syssys.path.append('..')import xx 2. python json JSON是一种轻量级的数据交换格式.可以解决数据库中文存储问题,对象序列化问题,等等. import json encodedjson = json.dumps(obj) decodejson = json.loads(encodedjson) 非常简单. 3. 静态方法 在函数前面@staticmethod @staticmethod def func(): p

android点滴之触控相关知识点(持续更新)

1.检查当前屏幕有多少个触摸点. 使用MotionEvent的getPointerCount()方法. 2.多点触控下,触摸的状态的检测 MotionEvent类中方法getActionMasked(),这个方法可以检查触摸的状态: 当只有一个触摸点时(只用一根手指触摸屏幕),按下是0,起来是1,移动是2: 当触摸点多于1时(多根手指触摸屏幕),按下是5,起来是6,移动是2: 3.多点触控下,每个触点的分类处理 多点触摸时 假如是第i个点 int x = event.getX(i); int y

python 类知识点总结

python 类知识点总结 面向对象思想: 1.设计的时候,一定要明确应用场景 2.由对象分析定义类的时候,找不到共同特征和技能不用强求 1.简述类.对象.实例化.实例这些名词的含义: 类:从一组对象中提取对象共同的特征和属性,构成一个类. 对象:具有数据属性和函数属性的集合体 实例化:由类生成一个对象的方法,就是实例化 实例:类的实例化就会产生一个实例(对象) 类: 对象就是类的抽象 类实例成对象的过程就是实例化 实例就是对象 2.面向对象的三大特性是什么? 继承,多态,封装 3.什么是方法?

Python书籍推荐(更新ing...)

学习一门语言最怕的就是没有目标,在出发之前心里必须明确你想要做什么,这是我这个还没入门的新人给初学者的忠告. 推荐几本初学者Python教程: 2018-8-22更新 新增tkinter编写GUI界面:<Python GUI Programming Cookbook><2014年度辛星Tkinter教程第二版> 新增计划:<Python For Data Analysis><2014年辛星python标准库整理第一版> 2018-6-29更新 已看完的有:&