Python 面向对象编程概念
Python从诞生以来就是一种面向对象的语言。因此,创建和使用类和对象非常容易。本章将帮助您成为使用Python面向对象编程的专家。
如果您没有任何面向对象(OO)编程的经验,您可能需要参考一门入门课程或至少一份教程,以便对基本概念有所了解。然而,这里有一个关于面向对象编程(OOP)的简介,可以帮助您。
过程导向方法
50年代和60年代开发的早期编程语言被认为是过程(或面向过程)语言。
计算机程序通过按照逻辑顺序编写一系列指令来描述执行某个任务的过程。更复杂程序的逻辑被分解为较小但功能相对独立且可重复使用的语句块(称为函数)。
每个函数都以一种可以与程序中的其他函数进行接口的方式编写。函数所属的数据可以以参数的形式轻松与其他函数共享,并且被调用的函数可以将其结果返回给调用的函数。
与过程方法相关的主要问题如下:
- 自顶向下的方法使得程序难以维护。
-
它使用了大量全局数据项,这是不希望的。太多的全局数据项会增加内存开销。
-
它更注重过程,并不考虑同等重要的数据,并认为数据在程序中自由流动。
-
数据在函数之间的传递是无限制的。在现实生活场景中,函数与要处理的数据之间存在明确定义的关联。
Python – 面向对象编程概念
在现实世界中,我们处理和处理对象,如学生、员工、发票、汽车等。对象既不仅仅是数据,也不仅仅是函数,而是二者的组合。每个现实世界的对象都有与之相关的属性和行为。
属性
- 学生的姓名、班级、科目、成绩等
-
员工的姓名、职位、部门、薪水等
-
发票号码、客户、产品代码和名称、价格和数量等
-
车辆的注册号码、车主、公司、品牌、马力、速度等
每个属性都有与之相关的值。属性等同于数据。
行为
处理与对象相关联的属性。
- 计算学生成绩的百分比
-
计算应支付给员工的奖励
-
对发票金额应用货物服务税
-
测量车辆的速度
行为等同于函数。在现实生活中,属性和行为并不独立,而是共存的。
面向对象方法最重要的特点是将属性及其功能定义为一个称为类的单元。它为具有相似属性和行为的所有对象提供了蓝图。
在面向对象编程中,类定义了其对象具有的属性及其行为方式。而对象则是类的一个实例。
面向对象编程范式的特点包括以下原则:
类
一种用户自定义的对象原型,该对象定义了一组特征,用于描述该类的任何对象。特征包括数据成员(类变量和实例变量)和方法,可以通过点表示法访问。
对象
某个特定类的个体对象。例如,属于Circle类的对象obj是Circle类的一个实例。对象是由其类定义的一种独特的数据结构实例。对象包括数据成员(类变量和实例变量)和方法。
封装
类的数据成员仅对类内部定义的函数可用于处理。另一方面,类的函数可从类外部上下文访问。因此,对象数据被隐藏在与类外部环境之间。类函数(也称为方法)封装对象数据,防止未经授权的访问。
继承
面向对象编程的一种软件建模方法,通过继承现有类的能力来构建新类,而不是从头开始构建。在面向对象编程术语中,现有类称为基类或父类,而新类称为子类或派生类。
子类继承了父类的数据定义和方法。这有助于重复使用已有的特性。子类可以添加几个新的定义或重新定义基类的函数。
多态
多态是一个希腊词,意思是具有多种形式。在面向对象编程中,当每个子类在基类中提供自己的抽象方法实现时,就会发生多态。