为什么使用类:
- 继承:通用的属性值需要在通用的情况下实现一次,就能让未来我们所创建的所有种类的机器人重用
- 组合:包含其他的对象,这些对象来运作完成相应的指令,每个组件都可以写程雷,定义自己的行为以及关系
类有三个重要的独到之处,使其在建立新对象时更为有用:
- 多重实例:类基本上就是产生对象的工厂,每次调用一个类,就会产生一个有独立命名空间的新对象,没给由类产生的对象都可以读取类的属性,并且获得自己的命名空间来储存数据,这些数据对于每个对象来说都不同
- 通过继承进行定制:类也支持OOP(面向对象设计)的继承的概念,可以在类的外部重新定义其属性从而扩充这个类。更通用的是,类可以建立命名空间的层次结构,而这种层次结构可以定义改结构中类创建的对象所使用的变量名
- 运算符重载:通过提供特定的协议的方法,类可以定义对象来影响在内置类型上的几种运算
属性继承搜索:object.attribute
找出attribute首次出现的地方,先搜索object,然后是该对象之上的所有类,由下至上,由左至右
类:类是实例工厂,类的属性提供了行为(数据和函数)。所有从类产生的实例都拥有该类的属性
实例:具体的类,代表程序领域中具体的元素,实例属性记录数据,每个特定对象的数据都不同
编写类树:
- 每个class语句会生成一个新的类对象
- 每次类调用时,都会生成一个新的实例对象
- 实例自动连接至创建了这些实例的类
- 类连接至其超类的方式是,将超类列在类头部的括号内,从左至右的顺序会决定树中的次序
类的属性:
- 属性通常是在class语句中通过赋值语句添加在类中,而不是嵌入在函数的def语句内
- 属性通常是在类内,对传给函数的特殊参数(self),做赋值运算而添加在实例中的
- 类和实例属性并没有实现生命,而是在首次赋值时它的值才会存在,当方法对self属性进行赋值时(self.attribute=)才会创建或修改类树底端实例内的属性