对象介绍!Python的面向对象介绍
面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。
文章图片
1.产生原因
面向对象的编程产生的历史原因:由于面向过程编程在构造系统时,无法解决重用,维护,扩展的问题,而且逻辑过于复杂,代码晦涩难懂,因此,人们开始想能不能让计算机直接模拟现实的环境,以人类解决问题的方法,思路,习惯和步骤来设计相应的应用程序。于是,面向对象的编程思想就产生了。
面向对象的编程的主要思想是把构成问题的各个事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在解决问题的过程中经历的步骤和行为。对象作为程序的基本单位,将程序和数据封装其中,以提高程序的重用性,灵活性和可扩展性。类是创建对象的模板,一个类可以创建多个对象。对象是类的实例化。
2.设计思维
面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。
而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。
在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。
3.不同的代码逻辑
a.面向过程:根据业务逻辑从上到下写垒代码
b.函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
c.面向对象:对函数进行分类和封装,让开发“更快更好更强...”
4. 面向对象思想的理解方法:
面向对象的理解方法其实不难,拿我入门时的一个栗子来讲:
把苹果放进冰箱写成程序
面向过程的写法是:
拿起苹果 找到冰箱 打开冰箱门 找到放置的层位 关闭冰箱门 完成
面向对象的编程是:
定义冰箱属性:可以被打开,哪些层位可以防止苹果,可以被关闭
然后执行:
拿起苹果,放入冰箱,完成
整体的过程如下图:
文章图片
有没有发现面向对象的比较简洁,而且比面向过程方便易“打理”?
这个可以让你理解下面向对象的优点,面向对象就是你找到编程里那些功能或函数是可以被封装定义到一个对象中,或者他本来就是属于对象的属性的,然后定义进去,使用时取用对应的功能就可以了。
简单讲下一些概念:
私有属性:当然也会涉及到私有属性的说法,意思就是说这个东西是“冰箱”专用的,其他东西放不进去,就好比冰箱中的专门放除臭剂的小格子,那个就是所谓的私有属性,那么外来的东西是用不了的
【对象介绍!Python的面向对象介绍】实例化:这个名词也是经常会理解不了的地方,那就简单的说,商场里的同一款的冰箱功能什么都一样,整体来看对我们来说就是一个冰箱,但是他没有出售,那就是没有归属,当你买了,那么这就是你的冰箱,别人就不能放进去苹果,这就是说,你在定义了这个冰箱(类或函数)之后,当你属于它时,要给它一个归属,也就是实例化,这是谁的,谁可以用
继承:这个简单,就是说这个冰箱的第2代出来了,第2代中使用了第1代中的什么属性,比如那个门的设计一样,保鲜层数相同等,这就是继承,所以不难看出,1代是父类,2代是子类,当然也是可以重新对一些结构做定义,比如2代保鲜层一层我们定义为只能放牛奶的,这也就是方法重写
多态:其实不要想打太难,就是既然我是子类,那么我可以继承使用父类里的功能与属性
好了,就是这样理解,你会发现其实没有那么难!
整理出来的框架如下(写的简单了点):
文章图片
5.面向对象编程的优点:
a易维护
采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。
b易扩展
通过继承,可以大幅减少多余的代码,并扩展现有代码的用途,同时可以在标准的模块上(这里所谓的”标准”指程序员之间彼此达成的协议)构建我们的程序,而不必一切从头开始。这可以减少软件开发时间并提高生产效率;
c模块化
封装可以定义对象的属性和方法的访问级别,通过不同的访问修饰符对外暴露安全的接口,防止内部数据在不安全的情况下被修改。这样可以使程序具备更高的模块化程度,方便后期的维护和修改。同时,面向对象语言允许一个对象的多个实例同时存在,而且彼此之间不会相互干扰;
d方便建模
虽然面向对象语言中的对象与现实生活中的对象并不是同个概念,但很多时候,往往可以使用现实生活中对象的概念抽象后稍作修改来进行建模,这大大方便了建模的过程。(但直接使用现实中的对象来建模有时会适得其反)。
好了,这一块就到这里了,关于python的基础架构到这里基本上可以说够了,你可以简单的编程了,当然我这写的很快,但是真正学起来,肯定不会这么快的,对于一门编程语言,至少得学一到两个月,你才能说是真正的掌握,因为里面有很多你不常用的零碎的东西,得多用才知道怎么用,如何用的最好,现在只是打基础!
内容预报:
1.Python常用常见的tips
2. Python的细节方法及编程介绍
推荐阅读
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- 数组常用方法一
- Python基础|Python基础 - 练习1
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- Python(pathlib模块)
- Apache多路复用模块(MPMs)介绍
- python青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则