目录
一、面向过程与面向对象的优缺点
二、面向对象相关概念
一、面向过程与面向对象的优缺点
1.1面向过程
优点:极大降低程序的复杂度,只需按照执行步骤,堆叠代码。
缺点:一个过程只能解决一个问题,复用性差,代码牵一发动全身。
1.2面向对象
优点:极大增强程序的扩展性。对某一对象单独修改,会反映整个体系。
缺点:可控性差,无法精准预测问题的处理流程与结果。
面向对象编程的应用场景:需求经常变化的软件,一般需求的变化都集中在用户层,像是互联网应用,企业内部软件,游戏等都是面向对象的程序设计大显身手的好地方。但是在python中面向对象的程序设计并不是全部。
面向对象编程可以让程序的维护和扩展变得更简单,提高程序开发效率,基于面向对象的程序可以使他人更容易的理解代码逻辑。
二、面相对象相关概念
在学习面向对象以前,需要了解一些前置只是,比如类、对象、实例、实例化的概念。
类:指具有相同特征的一类事物(比如猫、狗、大象、人等)
对象/实例:指具体的某一个事物(比如楼下阿花,隔壁旺财)
实例化:指从类到对象的过程。
![e2d420f1fdcd2ae9410ab149e1090e9b.png](https://i-blog.csdnimg.cn/blog_migrate/6e0b6fdcf6496ac78d8821beb0774a5b.jpeg)
我们可以看到实例化,其实就是类名加括号,实例化一个对象将会自动触发__init__函数运行,可以用它来为每个实例定制自己的特征。
![57fab24b54157b1ac7fee90f513d116b.png](https://i-blog.csdnimg.cn/blog_migrate/08bc61e096be91e67c8c19914d2bc4ea.jpeg)
self:在实例化时自动将对象或实例本身传给__init__的第一个参数。
![bc852de4ca9dd3e293637b322677ef47.png](https://i-blog.csdnimg.cn/blog_migrate/742efae4c5da8050f8546db457923cbe.jpeg)
结构,具体例子如下:
![5718bf14bcc8e7a1451c57f25ef1ae84.png](https://i-blog.csdnimg.cn/blog_migrate/0452f3fd3519d6736da6b44fc6bf0e93.jpeg)
类名的调用方法:
![f8bdbf1c9aa462ab11f585f6f5171bc3.png](https://i-blog.csdnimg.cn/blog_migrate/12b0ff899f736e8943f82ad8ecac6198.jpeg)
实例化对象:下面是实例化对象的内部过程,注意查看对象调用变量和方法。
![9512839604d9c24715e5627a8b8b0201.png](https://i-blog.csdnimg.cn/blog_migrate/5a55a05fd035cfa5b96d9cb8f569dee7.jpeg)
![ccbb0d758367643082f866a783f2afa3.png](https://i-blog.csdnimg.cn/blog_migrate/d37e657cda4fd7f15b676935cbb78028.jpeg)