封装——“隐藏一切可以隐藏的实现细节,只向外界暴露(提供)简单的编程接口”。
在上节的 Student 类中,每个实例就拥有各自的 name 和 age 这些数据。我们可以通过函数来访问这些数据,比如打印一个学生的年龄:
>>> def print_age(std):
... print('%s: %s' % (std.name, std.age))
...>>> print_age(stu1)
小白菜: 21
但是,既然Student实例本身就拥有这些数据,要访问这些数据,就没有必要从外面的函数去访问,可以直接在Student类的内部定义访问数据的函数,这样,就把“数据”给封装起来了。这些封装数据的函数是和
Student类本身是关联起来的,我们称之为类的方法:
class Student(object): def __init__(self, name, age):
self.name = name
self.age = age def print_age(self):
print('%s: %s' % (self.name, self.age))
这样一来,我们从外部看Student类,就只需要知道,创建实例需要给出name和age,而如何打印,都是在Student类的内部定义的,这些数据和逻辑被“封装”起来了,调用很容易,但却不用知道内部实现的细节。
免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。