Python的学习心得和知识总结(六)|Python 面向对象编程(一)

Fleur ·
更新时间:2024-09-20
· 832 次阅读

前面我们已经做了大量的基础的学习 和 准备工作,从今天开始正式进入Python的面向对象编程。对于Python而言,它是支持前面的面向过程、OOP和函数式编程等大量编程范式。

至于OOP这个东西也比较简单,我们在C++的时候已经说过了。OK 开始今天的学习!

Object oriented Programming面向过程和面向对象的区别详解类的定义和对象的创建对象的构造函数对象的实例属性对象的实例方法类也是一个对象类属性和类方法Python静态方法对象的析构函数可调用对象是啥方法是没有重载详解面向对象封装的具体实现私有属性私有方法装饰器@property

面向对象与前面的面向过程,是两种完全不同的编程思想。面向对象其主要是针对大型软件的设计开发的,其优点和特性如下:

1、程序的更强的扩展性 可读性
2、代码与数据的组织方式更加接近人的思维,即:把数据和方法封装在对象中
3、Python同样也支持OOP的基本概念:封装、继承和多态
4、Python里面 一切皆对象

面向过程和面向对象的区别

所谓面向过程(如C语言),其更加关注:任务怎么按照步骤 流程来完成(一步一步来解决问题) 或者说 是一种解决方式的逻辑流程。 但是当我们遇到一些逻辑上就非常复杂的问题时,基于步骤的解决方案 可能就不太适合了。(在我看来,面向过程更加适合于完成底层的基础设施搭建。一个worker角色)

而面向对象则聚焦于 问题之中 or 软件里面对象之间的关系,这是站在作为设计者的上帝视角。这点更加符合我们人的思维方式。(面向对象则适合于顶层的宏观思想设计。一个designer视角)对于复杂问题的考量,首先需要抽取出尽可能多的对象进而抽象成 类;然后确定对象的属性和行为(类的数据和方法);最后组装成类,并完成类间关系的确立。

虽然是二者之间的差别巨大,但是在我看来 这是密不可分的有机体。(相互配合,可能效果更佳 色香味俱全)

小结一下:

二者都是解决问题的一种方案(代码的组织方式) 面向过程不需要OOP也可以解决问题(适合于小型问题,但并不意味着人家干不了大事) 在一个复杂问题上:顶层面向对象设计,底层面向过程实现 两种思维方式的碰撞,没有优劣之分。相互配合,效果更佳

注:Python里面的对象,通俗来说:就是不同类型数据和操作数据的方法的有机体。其一切皆对象,就是除了其值以外,还包含了一些其数据的操作方法的对象。( 类是抽象的,对象是真实的。类是对象的模板,通过类的定义来创建一个个实例对象;进而使用类里面定义的方法进行实际的行为

OK,下面我们就进入OOP的世界!

详解类的定义和对象的创建

因为程序代码都是由 一个个被抽象出来的类来组织的,它是创建出来对象的模具。前面也说了 类的数据和方法就对应上了对象的属性和行为。对象是运行时期被创建出来的 根据Python的一切皆对象,此时的类 也是对象。(不过它是产生对象的对象)

和我们的C++一样的是,同一个类可以创建出来不同的对象。这些对象共享同一套这个类的方法,但他们拥有自己私有的数值。
原创文章 114获赞 101访问量 3万+ 关注 私信 展开阅读全文
作者:孤傲小二~阿沐



学习心得 对象 学习 面向对象 python的 面向对象编程 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号