携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第19天,点击查看活动详情
0 环境
- 编辑器:pycharm或者vscode
- 系统版本:windows10
- python版本:3.9.6
1 前言
之前写了挺多的函数,变量,80%是重复,那我们怎么复用了,怎么对它进行封装呢(怎么做到保存数据和代码呢),这得需要下一位大神面向对象了。
2 定义
什么是面向对象呢,上网一搜,是这么写着的,面向对象(Object Oriented)是软件开发方法,一种编程范式。那么有哪些编程范式,常见的编程范式如下:
- IP,面向指令,就是我们了解的汇编语言,很接近机器。
- PP,面向过程,比如c语言,离机器稍微远点了,编写稍微自由了,可以抽象成一个个的过程了,比如我们定义的函数,在函数体内写的就是过程。
- FP,函数式编程,相同的输入产生相同的输出(无副作用),让我不由的想到了纯函数。
- OOP,面向对象编程,很常用的,之后要具体的讲它,正常都要和它打交道的,它的身影很常见,比如java中java bean。
- AOP,面向切面编程,其实它我们有意无意都会接触到,学过java,一提AOP你就会立马知道了,但是python会称AOP为装饰器,名字不同,但是本质上是一样的。
OOP的世界观,如下:
- 世界是由对象组成的,比如动物,人。。。
- 对象具有内部状态和运行的规律,比如人的吃饭,喝水,睡觉,头发又变少了。
- 对象之间也是可以相互交流的,我问候你吃过了没,你回应我,吃了。 总体来说,挺符合或者说接近人的思维的。
面向对象的两大特点:
- 唯一性:对象都是唯一的,除非他们是来自于同一个对象,否则不存在两个相同的对象。就好比不太严谨,理解意思即可,身份证上的家庭地址是唯一的一样,当然你去派出所改,但是家庭这项只会填一个,不会给你填多个地址吧,你会说还有个同龄人和你家地址一样,说明来自于同一个对象。