文章目录
前言
Python是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议。Python语法简洁而清晰,具有丰富和强大的类库。
那么问题来了。什么是面向过程?什么是面向对象?
本文将全面解析两者之间的区别。
一、面向对象和面向过程的区别
1.面向过程
1、面向过程:核心是过程二字,过程指的是解决问题的步骤,好比如设计一条流水线,是一种机械式的思维方式。
就是程序从上到下一步步执行,一步步从上到下,从头到尾的解决问题 。基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再执行的过程再继续分解直到小问题足够简单到可以在一个小步骤范围内解决。
2、优缺点:
优点:将复杂的问题流程化,进而简单化。
缺点:扩展性差
3、实例:面向过程式的登录注册程序
View Code
注意:一般认为, 如果你只是写一些简单的脚本,去做一些一次性任务,用面向过程的方式是极好的,但如果你要处理的任务是复杂的,且需要不断迭代和维护 的, 那还是用面向对象最方便。
*我们在日常的学习和工作中,为了更好地完成某项任务,在开始之前都会在纸上或者心中列出一个流程,然后按部就班地去解决问题,这实质上就是面向过程的思想。我们罗列的步骤就是过程,按照步骤解决问题就是面向过程。
因为我自己喜欢做好吃的,今天就以最简单的烤东西为例。假设我今天突然想用烤箱烤大虾。首先,准备好大虾,放入烤箱,设定好温度190℃和时间15分钟,时间到了,就可以吃啦。这就是一个简单的面向过程的思维。*
2.面向对象
1、面向对象:核心是对象二字,特征和技能的结合体。
2、优缺点:
优点:可扩展性高
缺点:编程复杂度高
3、应用场景:用户需求经常变化,互联网应用,游戏,企业内应用等。
4、关于面向对象的几个名词解释
类:一个类即是对一系列对象相似的特征和技能的结合体,如同一个模板。在类中定义了这些对象的都具备的属性,共同的方法。
属性:人类包含很多特征,把这些特征用程序来描述的话,叫做属性,比如年龄、身高、性别、姓名等都叫做属性,一个类中,可以有多个属性。
方法:人类不止有身高、年龄、性别这些属性,还能做好多事情,比如说话、走路、吃饭等,相比较于属性是名词,说话、走路是动词,这些动词用程序来描述就叫做方法。
实例(对象):一个对象即是一个类的实例化后的实例,一个类必须经过实例化后方可在程序中调用,一个类可以实例化多个对象,每个对象亦可以有不同的属性,就像人类是指所有人,每个人是指具体的对象,人与人之前有共性,亦有不同。
实例化:把一个类转变为一个对象的过程就叫实例化。
5、简单实例
# 现实世界中的对象:
'''
对象1
特征
职业:学生
姓名:王二
性别:男
年龄:22
技能
学习
打游戏
对象2
特征
职业:学生
姓名:张三
性别:男
年龄:20
技能
学习
打游戏
看书
对象3
特征
职业:学生
姓名:婉婉
性别:女
年龄:18
技能
学习
打游戏
看书
现实中的类:
特征:
职业:学生
技能:
学习
打游戏
看书
在程序中:
'''
# 先有类
class School_learn:
job = 'student'
def study(self):
print('study hard!')
def play_game(self):
print('play games as little as you can')
def read(self):
print('read books more and more')
# 再调用类产生对象
student1 = School_learn()
student2 = School_learn()
student3 = School_learn()
print(student1) # <__main__.School_learn object at 0x000002B70F8D7588> 对象
print(student2)
print(student3)
3.面向对象三大特性
<1>封装(Encapsulation):在类中对数据的赋值、内部调用对外部用户来说是透明不可见的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法。
<2>继承(Inheritance):一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承。
<3>多态(Polymorphism):多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,指一个基类中派生出了不同的子类,且每个子类在继承了同样的方法名的同时又对父类的方法做了不同的实现,这就是同一种事物表现出的多种形态。
注意:这里只是简单说明下几大特性,后续我们会深入探讨的的。
总结
通过上述的对比,我们可以发现,面向过程就是分析出解决问题所需的步骤,面向对象则是把构成问题的事物分解成对象,抽象出对象的目的并不在于完成某个步骤,而是描述其整个解决问题的步骤中的行为。那么,我们在日常编程中应该怎么选择呢?到底是用面向对象还是面向过程呢~
结合我们上面提到的优缺点。建议小伙伴们在日常自己写点提高生产力的脚本或者小程序时使用面向过程。在一些比较复杂的程序或者要和别人协作的时候还是面向对象吧~
Python技术资源分享
小编是一名Python开发工程师,自己整理了一套 【最新的Python系统学习教程】,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。
保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
如果你是准备学习Python或者正在学习,下面这些你应该能用得上:
1、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
2、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
3、精品书籍
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
4、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
5、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
6、清华编程大佬出品《漫画看学Python》
用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。
7、Python副业兼职与全职路线
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取(安全链接,放心点击)