python笔记 邂逅面向对象

41 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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的世界观,如下:

  • 世界是由对象组成的,比如动物,人。。。
  • 对象具有内部状态和运行的规律,比如人的吃饭,喝水,睡觉,头发又变少了。
  • 对象之间也是可以相互交流的,我问候你吃过了没,你回应我,吃了。 总体来说,挺符合或者说接近人的思维的。

面向对象的两大特点:

  • 唯一性:对象都是唯一的,除非他们是来自于同一个对象,否则不存在两个相同的对象。就好比不太严谨,理解意思即可,身份证上的家庭地址是唯一的一样,当然你去派出所改,但是家庭这项只会填一个,不会给你填多个地址吧,你会说还有个同龄人和你家地址一样,说明来自于同一个对象。