Python学习9-面向对象编程

来源:互联网 发布:jquery数组push 编辑:程序博客网 时间:2024/05/29 19:27

转自廖雪峰的博客

  在面向对象编程中需要考虑:对象、属性、方法,实例化。面向对象编程具有三大特点:数据封装、继承和多态

举例:打印学生成绩。

  处理学生的成绩表,如果采用面向对象的程序设计思想,我们首选思考的不是程序的执行流程,而是Student这种数据类型应该被视为一个对象,这个对象拥有name和score这两个属性(Property)。如果要打印一个学生的成绩,首先必须创建出这个学生对应的对象,然后,给对象发一个print_score消息,让对象自己把自己的数据打印出来。

程序实现如下:

class Student(object):

    def __init__(self, name, score):
        self.name = name
        self.score = score

    def print_score(self):
        print '%s: %s' % (self.name, self.score)


bart = Student('Bart Simpson', 59)
lisa = Student('Lisa Simpson', 87)
bart.print_score()
lisa.print_score()


数据封装:

  类有自己对应的属性和方法,一个类可以实例化出多个不同的对象,每个实例通过类的方法可以访问各自的数据。

注意:访问限制

  属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问。

在访问限制的情况下,需要定义对应的get_和set_方法来获取属性值或者对属性赋值。


继承:

  当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。继承可以使子类获得了父类的全部功能,同时在继承的基础上可以产生多态。


多态:

当子类和父类有相同的方法时,子类的方法会覆盖父类的方法。

注意:使用dir可以获得一个对象的所有属性和方法。


0 0
原创粉丝点击