其实python可以这么学6-模块及异常处理

其实我们前边已经使用了很多模块,如第一节的urllib,那本节将为你介绍import urllib背后的秘密。

对于异常处理,我们已经在其它语言如C++、java中有所体会,那python中又是如何进行异常处理的呢?

稍后,你就会知道答案。本节共分为以下几个部分。

1. 认识模块

2. 模块的引入

3. 定义模块

4. 常用模块介绍

5. 异常处理

6. 写在最后

7. 参考文献

下面我们先来了解下模块。

1. 认识模块

模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我们就可以使用了。这类似于C语言中的include头文件。在 Python中的模块是一个以.py结尾的 Python代码文件。

2. 模块的引入

在C语言或C++语言中,我们使用include来引入相应的库,那python如何引入模块呢?

Python引入模块与java中引入库有些类似,都使用import。

import 会完成以下三个操作:

l 创建新的名称空间(namespace),该名称空间中拥有输入模块中定义的所有对象;

l 执行模块中的代码;

l 创建该名称空间的变量名

import 语句可同时输入多个模块,如:

importos,sys,system

也可以写成:

import os

import sys

import system

有些模块的名称很长,我们可在输入时给它起个简单的别名,这样在使用模块中

的对象就方便很多,如

import ftplib asftp

有时我们可能只想使用模块中某个对象,又不想把整个模块输入,则可以用

from…import 语句输入特定对象。如:

from ftplibimport FTP

这样,我们就可直接使用 FTP(),而不用带前缀。

3. 定义模块

Python 脚本和模块都是一个以.py 结束的文件,那程序是如何判断一个.py 文件是作为脚本还是模块呢?关键是一个名为__name__的变量,如果它的值是__main__,则不能作为模块,只能作为脚本直接运行。所以在很多脚本的最后都有一段类似下面的语句,限制只能以脚本方式运行,不作为模块:

if __name__ ==‘__main__’:

main()

几个功能相近的模块我们可组成一个 Python 包,存放到一个目录结构中,通过输入包的路径来调用对象。要定义包,就要建一个与包名同名的目录,接着在该目录下创建__init__.py 文件。该文件是包的初始化文件,可以为空,也可定义一个代码。例如一个 WebDesign 包的目录如下:

/WebDesign

__init_.py

design.py

draw.py

我们可通过以下语句输入 design 模块:

importWebDesign.design

4. 常用模块介绍

l import string

字符操作相关函数库

l import time

时间操作相关函数库

l import json

处理json数据的函数库

l import os

与操作系统有关的函数库。

os.system(‘ls’) #用 os.system()可执行系统命令

l import sys

非常强大的一个模块,包括sys.argv、sys.platform等

l import re

与正则有关的模块

l import urllib

与网页操作有关的模块

l import copy

与复制有关的模块

具体每个模块的函数库是非常多而且复杂的,这里只是简单的介绍一下,不作更多的深入探索,有兴趣的可以自己找资料研究一下。

5. 异常处理

与C++、java语言的异常处理机制类似,python也是使用try和catch来进行异常处理。

Try有两种用法,一种是:

try:

block

except [exception,[data…]]:

block

else:

block

该种异常处理语法的规则是:

a) 执行 try 下的语句,如果引发异常,则执行过程会跳到第一个 except 语句。

b) 如果第一个 except 中定义的异常与引发的异常匹配,则执行该 except中的语句。

c) 如果引发的异常不匹配第一个 except,则会搜索第二个 except,允许编写的 except 数量没有限制。

d) 如果所有的 except 都不匹配,则异常会传递到下一个调用本代码的最高层 try 代码中。

e) 如果没有发生异常,则执行 else 块代码。

另一种用法是:

try:

block

finally:

block

该种异常处理语法的规则是:

a) 执行 try 下的代码

b) 如果发生异常,在该异常传递到下一级 try 时,执行 finally 中的代码

c) 如果没有发生异常,则执行 finally 中的代码

除了系统引发的异常外,我们还可用 raise 语句手工引发一个异常:

raise [exception[,data]]

6. 写在最后

Python中模块的概念有关类似C或C++中库的概念。在python编程中,我们已经熟悉了几个比较常用的模块,对于这些模块,我们可以根据需要去进行研究,以便在使用时能够得心应手。

对于异常处理,大家在其它语言也应该有所接触,而异常处理机制也是非常好理解的。多练习,就可以掌握。

7. 参考文献

Python之import机制:http://blog.sina.com.cn/s/blog_90bc5fc6010159e0.html

Python手记,下载地址:http://pan.baidu.com/s/1pJCxxWZ

其实python可以这么学6-模块及异常处理

相关文章:

你感兴趣的文章:

标签云: