面向过程就是分析出解决问题所需要的步骤,然后用函数这些步骤一步一步实现,使用的时候一个一个依次调用就可以。面向对象是把构成事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
面向过程的特点:
将复杂的问题流程化,进而简单化,但是牵一发而动全身,扩展性差,可维护性也很差。对扩展性要求不高的地方可以使用,比如安装的使用
面向对象的特点:
扩展性强,可维护性强,适用于对扩展要求比较高的地方,比如我们生活中的微信,qq等。
1、在程序中:对象就是盛放数据和函数的容器
2、在现实生活中,一切皆对象,对象是特征和技能的结合体。
类是一系列对象相似的特征与相似的技能的结合体,站在不同的里长,划分的分类不一定是一样的。
1、在程序中必须先定义类,然后调用类产生对象
2、在现实生活中,是先有对象再有类的
1、定义函数:
2、定义类
在定义类后发生的事情:
(1)立即执行类体代码
(2)产生一个类的名称空间,把类体里面执行的名字都扔到名称空间中去(大字典)
(2)把类的名字绑定给__dict__。通过类名.__dict__可以查看类的名称空间。
3、给对象定制自己独有的属性
4、属性的查找顺序
(1)类属性:在类中写的属性就称为类属性
1)查: 类名.属性名
2)增:类名.属性名=‘xxx’(此属性名在类名称空间中不存在)
3)改:类名.属性名=‘xxx’(此属性名在类名称空间中存在)
4)删:del 类名.属性名
(2)对象属性:在对象自己的名称空间中的属性就是对象属性
当对象调用属性的时候,先在自己的名称空间中查找,如果找不到就去类名称空间查找。当类调属性的时候,只能在类名称空间查找。
1)查: 对象名.属性名
2)增:对象名.属性名=‘xxx’(此属性名在类名称空间中不存在)
3)改:对象名.属性名=‘xxx’(此属性名在类名称空间中存在)
4)删:del 对象名.属性名
5、方法的调用
类调用的方法:
类名.方法名(参数1,参数2)需要几个参数传几个参数
对象调用的方法:
类名.方法名(参数1,参数2)会把自己当做参数传递给函数