Python学习笔记(6)——OOP_1
一.什么是OOP
- OOP(object-oriented programming) 就是常说的面向对象编程
- 面向对象编程是一种编程思想,是一种观察问题的方式,并不是说语言是支持面向对象的语言(比如:C++,Java),写出来的程序就是面向对象的程序.
二.如何理解OOP
我当初学面向对象的时候真是一头雾水…什么是面向?是脸朝哪里吗?什么是对象?是女朋友吗?老师没有女朋友还能学吗?真是逼死我了.在工作了几年后的现在,我希望我能用简单且易于理解的话语,让正在看这篇文章的你明白什么是面向对象.
计算机的编程思想发展到现在一共经历了两个历程
- 面向过程编程
- 面向对象编程
先来解释下什么是面向,在我的理解中”面向”这个词在这里可以解释为”关注于”,英文就是focus on.
再来解释下过程和对象,过程就是一串有序的动作,对象则是发起动作的主体,类似于一句话中的主语或宾语,特点是都是名词.
这样一来,
面向过程就可以理解为:关注于动作的编程
面向对象就可以理解为:关注于事物主体的编程
我们来举个例子:
比如:我拿起一个苹果,递给一个可爱的小朋友,小朋友开心的笑了.
面向过程关注与动作:就是句子里的,拿,递,笑
面向对象关注于事物的主体:我,苹果,小朋友
这其实本质上是两种描述这个世界的方式,当事情比较简单的时候,其实面向过程编程更加方便.这也是为什么计算机编程最开始是从面向过程开始的.那个时候计算机运算能力低,遇到的需求也简单(太复杂的计算机也跑不动啊).
而随着科技的发展,计算机性能的飞速提高,程序员们发觉用面向过程的方式编程简直要疯!为什么?因为面向过程关注和描述的是一串有序的动作,关键:有序,有序,有序,重要的说三遍.这就导致了,前面改了什么东西后面很可能也要跟着修改,改动一个问题引出一串问题.比如上面的例子,如果我拿起的是一个橘子,那么到小朋友手上的也应该是橘子而不是苹果.总体概括下:面向过程编程其实所描绘的是一串有序的动作.
后来就有了面向对象编程,要注意这不是科技的飞跃,但却比某种重大科技突破更具有意义,这是程序员认知世界,用程序描述问题的一种飞跃.我们不再目光短浅的描述一件事情,而是开始用程序描述这个世界,而世界是由什么组成的呢?是一个个主体,所有的事情不就是一个个主题的互动所产生的吗?当我们将一类类主体赋予功能(函数),属性(数据)的时候,所有的问题也迎刃而解.
学习面向对象需要深刻理解其思想,当理解了其思想以后,你会发现那些语法是出现的多么理所当然,正应该是这样的,不这样才是不对的!
写了这么多希望对想要理解面向对象的同道中人能有所帮助,那样就真的太好了.
阅读更多- python学习笔记-2(OOP)
- Python学习笔记(7)——OOP_2
- python学习笔记4(列表)
- python 学习笔记
- python 学习笔记(4)
- Python 装饰器 学习笔记
- python学习笔记23(时间与日期 (time, datetime包))
- 【Python学习笔记】函数参数
- python nltk 学习笔记(5) Learning to Classify Text
- [python]学习笔记2-字符串内建函数1
- 【python学习笔记】6.list和tuple的操作
- 用python做的一个好玩的问候代码-学习笔记12
- python学习课堂笔记
- python_学习笔记_基础练习_1
- 【Python】学习笔记——-8、输入和输出
- 【Python】python 学习笔记 --画图(networkx)
- python数据结构学习笔记-2016-11-28-01-表达式树
- python学习笔记之函数
- Python学习笔记六:文件处理