类是抽象的模板,而实例是根据类创建出来的一个个具体的对象。每个对象都拥有相同的方法,但各自的数据可能不同。
和普通函数相比,在类中定义的函数的第一个参数永远是实例变量self,调用时不用传该参数。
数据封装,面向对象的一个很重要的特征就是数据封装,每个实例就拥有各自的name和score这些数据,我们可以通过函数访问这些数据。这些封装起来的函数与类相关,我们称之为类方法。
通过在实例变量中调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部实现的细节。
和静态语言不同,Python允许对实例变量绑定任何数据,也就是说对于两个实例变量,虽然他们都是同一类的不同的实例,但拥有的变量名称可能不同。
面向对象的设计思想是从自然界中来的,因为在自然界中,类和实例的概念是很自然的,所以面向对象的设计师路 是抽象出class,根据class创建instance。面向对象的抽象程度又比函数要高,因为一个class既包含数据又包含操作数据的方法。