姓名:何承勇
学号:16050510005
转载自:http://www.cnblogs.com/Peter-Zhang/archive/2011/12/26/2300738.html,有删改
【嵌牛导读】:Python自1991年发布以来,逐渐被广泛应用在系统管理任务的处理和Web编程上。由于其语法简洁清晰,我们完全可以在学习Java、C++等面向对象编程语言时,同时学习Python。
本文主要讲述Python的面向对象编程、输入/输出和异常等内容。
【嵌牛鼻子】:Python、面向对象编程、基础学习
【嵌牛提问】:Python在面向对象编程上与C++相比有何异同?在处理异常情况方面呢?
【嵌牛正文】:
七、面向对象编程
python支持面向对象编程;类和对象是面向对象编程的两个主要方面,类创建一个新的类型,对象是这个类的实例。
对象可以使用普通的属于对象的变量存储数据,属于对象或类的变量被称为域;对象也可以使用属于类的函数,这样的函数称为类的方法;域和方法可以合称为类的属性。
域有两种类型--属于实例的或属于类本身;它们分别被称为实例变量和类变量。
类使用关键字class创建,类的域和方法被列在一个缩进块中。
类的方法必须有一个额外的第一个参数,但是在调用时不为这个参数赋值,这个特殊变量指对象本身,按照惯例它的名称是self,类似C#中的this。

__init__方法 在类的一个对象被创建时调用该方法;相当于c++中的构造函数。
__del__方法 在类的对象被销毁时调用该方法;相当于c++中的析构函数。在使用del删除一个对象时也就调用__del__方法。
Python中所有的类成员(包括数据成员)都是public的;只有一个例外,如果使用的数据成员以双下划线为前缀,则为私有变量。

继承:为了使用继承,基类的名称作为一个元组跟在类名称的后面;python支持多重继承。下面是一个关于继承的例子:

程序输出如下:

八、输入/输出
程序与用户的交互需要使用输入/输出,主要包括控制台和文件;对于控制台可以使用raw_input和print,也可使用str类。raw_input(xxx)输入xxx然后读取用户的输入并返回。
1. 文件输入/输出
可以使用file类打开一个文件,使用file的read、readline和write来恰当的读写文件。对文件读写能力取决于打开文件时使用的模式,常用模式
有读模式("r")、写模式("w")、追加模式("a"),文件操作之后需要调用close方法来关闭文件。

2. 存储器
python提供一个标准的模块,成为pickle,使用它可以在一个文件中存储任何python对象,之后可以完整的取出来,这被称为持久地存储对象;还有另外一个模块成为cPickle,它的功能和pickle完全一样,只不过它是用c写的,要比pickle速度快(大约快1000倍)。

九、异常
当程序中出现某些异常的状况时,异常就发生了。python中可以使用try ... except 处理。

可以让try ... except 关联上一个else,当没有异常时则执行else。
我们可以定义自己的异常类,需要继承Error或Exception。

try...finally

原文作者:Peter
网友评论