python总结(二)

来源:互联网 发布:java poi jar包下载 编辑:程序博客网 时间:2024/05/19 00:08

前面说了一些比较简单的总结,下面再来谈谈python的oop编程


从官方文档这段话可以知道,python中的一切类型包括整形都是一个类


我们可以看到python在创建对象的时候,是会先调用父类的__new()__方法去创建一个对象的实例,然后再根据需要进行修改在返回之前,需要注意的是如果new方法没有返回一个实例,那么将无法掉用init()方法


我们可以看出来,从这里可以知道new是创建对象,而init方法是对对象的属性的值进行初始化

记住必须要调用父类的init方法,因为必须要对父类的部分进行初始化

这里跟java很相似,都是先分配内存,然后调用构造方法进行初始化,唯一不同的是java的分配内存是一下子将子类特有的和从父类继承的实例变量都分配内存,而不是像python这样,先分配父类的变量,然后在需要的时候,再加上子类特有的变量

还有一个__str__()方法类似与java的toString方法,当直接输出这个类型的对象时,将会调用这个方法返回要输出的字符串

里面每个方法都有一个self参数,代表通过new方法新创建的那个实例

例子:

class t(object):    passclass helloWorld(t):    def  __init__(self):        #here to pass self because in the superclass's init method it will need to use this self to add some attributes        t.__init__(self)         self.g = 1    def __str__(self):        return self.g h = helloWorld()print h

下面再谈谈面向对象的三大特征:

(1)封装(2)继承(3)多态

封装就是一个blackbox,外面的人使用的时候无需知道实现细节,只需要知道提供的接口有什么功能就可以,对象完美的体现了这一点,大大降低了程序的复杂度

继承会继承父类中的属性与方法,当然在子类中可以重写那些方法

多态一般指的是父类引用可指向子类对象,但是我对于维基里面的解释更加青睐:


三、最后再说说python处理异常的情况:

当try里面的内容没有产生异常的时候,将会调用else,产生exception的时候将会根据你except中规定的捕捉的异常执行,如果没有捕捉到,那么将会中止程序的运行,

而finally是最为霸道的,无论try何except或者else有return,break之类的语句,finally都是会执行

可以使用raise来发出一个exception

例子:

try:    1/0except ZeroDivisionError, e:    print "1"else:    print "2"finally:    print "3"

输出的结果将是1,3



0 0
原创粉丝点击