Python - OOP 概念


Python 自诞生之日起就是一种面向对象的语言。因此,创建和使用类和对象非常简单。本章帮助您成为使用 Python 面向对象编程支持的专家。

如果您以前没有任何面向对象 (OO) 编程的经验,您可能需要查阅有关它的入门课程或至少某种教程,以便掌握基本概念。不过,这里有一个面向对象编程(OOP)的小介绍可以帮助您。

面向程序的方法

50 年代和 60 年代开发的早期编程语言被认为是过程性(或面向过程)语言。

计算机程序描述了通过按逻辑顺序编写一系列指令来执行特定任务的过程。更复杂的程序的逻辑被分解为更小但独立且可重用的语句块,称为函数。

每个函数的编写方式都可以与程序中的其他函数交互。属于函数的数据可以很容易地以参数的形式与其他函数共享,并且被调用的函数可以将其结果返回给调用函数。

与程序方法相关的突出问题如下 -

  • 它的自上而下的方法使得程序难以维护。

  • 它使用了大量的全局数据项,这是不希望的。太多的全局数据项会增加内存开销。

  • 它更加重视过程,不考虑同样重要的数据,并认为这是理所当然的,因此它可以在程序中自由移动。

  • 跨职能的数据移动不受限制。在现实生活场景中,函数与其预期处理的数据存在明确的关联。

Python - OOP 概念

在现实世界中,我们处理和处理的是对象,比如学生、员工、发票、汽车等。对象不仅仅是数据,也不仅仅是功能,而是两者的结合。每个现实世界的对象都有与其相关的属性和Behave。

oop_概念

属性

  • 学生姓名、班级、科目、成绩等

  • 员工姓名、职务、部门、工资等

  • 发票中的发票号、客户、产品代码和名称、价格和数量等

  • 汽车登记号、车主、公司、品牌、马力、速度等

每个属性都有一个与其关联的值。属性相当于数据。

Behave

处理与对象关联的属性。

  • 计算学生成绩的百分比

  • 计算应付给员工的奖励

  • 将消费税应用于发票金额

  • 测量汽车的速度

Behave等同于功能。在现实生活中,属性和Behave并不是相互独立的,而是共存的。

面向对象方法最重要的特征是将属性及其功能定义为称为类的单个单元。它充当具有相似属性和Behave的所有对象的蓝图。

在OOP中,类定义了它的对象有哪些属性,以及它的Behave如何。另一方面,对象是类的实例。

面向对象的编程范式的特点是以下原则 -

oop 原理

班级

用户定义的对象原型,定义了一组表征该类任何对象的属性。属性是数据成员(类变量和实例变量)和方法,通过点表示法访问。

目的

某个类的单个对象。例如,属于 Circle 类的对象 obj 是 Circle 类的实例。由其类定义的数据结构的唯一实例。对象包括数据成员(类变量和实例变量)和方法。

封装

类的数据成员仅可用于处理类内定义的函数。另一方面,类的函数可以从外部类上下文访问。因此,对象数据对类外部的环境是隐藏的。类函数(也称为方法)封装对象数据,以便防止对其进行未经授权的访问。

遗产

OOP 的软件建模方法可以扩展现有类的功能来构建新类,而不是从头开始构建。在 OOP 术语中,现有类称为基类或父类,而新类称为子类或子类。

子类继承父类的数据定义和方法。这有利于重复使用已有的功能。子类可以添加更多定义或重新定义基类函数。

多态性

多态性是一个希腊词,意思是有多种形式。在 OOP 中,当每个子类在基类中提供自己的抽象方法实现时,就会发生多态性。