Python学习9-面向对象编程

转自廖雪峰的博客

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

举例:打印学生成绩。

  处理学生的成绩表,如果采用面向对象的程序设计思想,我们首选思考的不是程序的执行流程,而是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可以获得一个对象的所有属性和方法。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值