8.3 类的封装

已经有变量和函数的情况下,为什么还需要类呢?
类是一种编程思想,它是现实世界事物的抽象化。
例如下面的代码,用来描述一本书:
name='资治通鉴'
number=523
author='司马光'
intro='资治通鉴是由北宋史学家司马光主编的一部多卷本编年体史书'
如果程序需要列举两本书,那第二本书就需要这样命名:
name='资治通鉴'
number=523
author='司马光'
intro='资治通鉴是由北宋史学家司马光主编的一部多卷本编年体史书'
name2='史记'
number2=238
author2='司马迁'
intro2='无韵之离骚,史家之绝唱'
第二本书的所有变量都要和第一本不一样,这显得有点笨拙,如果是10本书,那就肯定要写更多的变量,以及更难维护的代码——因为这些变量并没有紧密的关系,只是通过命名来表示是同一本书的属性。
如果用类来处理,那就优雅多了:
class Book:
    name=''
    number=0
    author=''
    intro=''
book1=Book()
book1.name='资治通鉴'
book1.number=523
book1.author='司马光'
book1.intro='资治通鉴是由北宋史学家司马光主编的一部多卷本编年体史书'
book2=Book()
book2.name='史记'
book2.number=238
book2.author='司马迁'
book2.intro='无韵之离骚,史家之绝唱'
把数据和函数写到一个类里面,从而在属性和功能上构成这个物体,称之为类的封装。然后最小的数据单元,就变成了对象(对象是类的一个实例),这个对象可以调用它自己的成员函数,这种编程方法称为面向对象。
如果最小的数据单元是基本变量,它们离散存在,传递到一个个函数中完成功能,这种编程方法称为面向过程。过程泛指函数。