冲扬心法

笑声激发自强,发愤、图强、飞身向上

   :: 首页  ::  ::  ::  :: 管理

面向对象编程的三大特点:封装、继承和多态!

封装

继续上篇文章的例子,Student类已经具备name和score属性,现在要答应学生的姓名和成绩,该怎么设计呢?可以这么想,谁最清楚name、score的数据是什么?当然是Student类的实例本身了!要访问这些数据,没有必要单独写一个外部函数,直接在类内部定义访问数据的函数就好啦:

 class Student(object):
     def __init__(self,name,score):
             self.name = name
             self.score = score
     def print_stu(self):
             print('姓名:%s,成绩:%s'%(self.name,self.score))

要调用一个方法,只需要在实例上直接调用:

>>> wc = Student('wc',88)
>>> wc.print_stu()
姓名:wc,成绩:88

这样,我们看待一个类时,只需要给出所需的属性数据name和score,而如何打印或者操作这些数据都是在Student类的内部定义好的,这样调用很容易,却不用知道内部函数的实现细节。这个过程就是封装。

和静态语言不同,python允许对实例变量绑定任何数据,也就是说,属于同一个类的不同的实例,拥有的变量名称可能不同:

>>> ly = Student('ly',77)
>>> ly.age = 24
>>> ly.age
24

 

posted on 2018-03-06 13:23  风雨一肩挑  阅读(514)  评论(0编辑  收藏  举报