因为我之前只是简单的学了一下Python,并没有深入的学习面向对象的内容. 但是学习Scrapy需要用到大量和类相关的知识, 所以需要恶补.
0.面向对象编程
其实面向对象的这个概念还是比较好理解的, 和我一样是初学者的应该只接触过面向过程编程. 面向过程的编程思路只在乎程序运行的过程.而面向对象编程完全不一样.
对象,object翻译成中文有 物体,目标,目的,东西的意思. 也就是说面向对象编程就是用代码模拟物体然后利用这些物体(对象)来编程具体的可以看这里廖雪峰的教程.
伪代码:
class 长矛(木棍):
长度 = 1米
材料 = ['铁',木头']
def 刺(self):
造成100点穿刺伤害
def 劈砍(self):
造成50点钝器伤害
普通的长矛 = 长矛() #得到了长矛的实例
普通的长矛.刺() #使用了长矛的方法
1.实例和类
实例和类的关系就像是月饼和月饼模子. 同一个类的实例之间的属性可以不一样,但是方法是一样的.各个实例之间互不影响.
2.封装
其实封装这个概念在函数中是学过的,只不过在类中的封装更加复杂一点. 函数只是封装了一些语句,而在类中则是封装了数据和函数.
self = 实例名, self其实就是一个变量用来存放实例名.
3.继承
在廖雪峰的教程中讲的挺清楚的,子类可以获得父类所有的方法和属性,如果子类中的方法和父类中的方法冲突,子类的方法会覆盖掉父类的方法.
4.多态
在<与孩子一起学编程>中写的很好,多态是指不同的类,可以有同名的两个(或多个)方法.取决于这些方法分别对应到那个类,它们可以有不同的行为.
这些是类的基本用法,估计写Scrapy够用了.