Python 中 OOP 概念的完整指南

已发表: 2020-10-22

一段时间以来,面向对象编程或 OOP 一直是软件世界不可或缺的一部分。 它是一种出色的编程范式,提供了一定程度的自由度,并提高了开发人员的编程成就。

每个开发人员都应该了解某些基本概念和原则。 它们推动了使用此模型开发应用程序的前提。

在这里,我们将看一下Python 中一些关键但基本的 OOP 概念 这些概念驱使程序员实现更好的结果,并以丰富的方式为他们的应用程序建模。

目录

什么是面向对象编程?

对于外行来说,这是我们要开始归纳的地方。 让我们像外行一样理解 OOP,以更深入地了解我们如何解决它。

在这种编程结构中,您可以轻松地将具有相似属性或行为的事物组合成一个对象。 如果您在谈论人口统计,那么这将成为此编程模型的单个对象。 同样,如果你在谈论要采取的行动,那么它就变成了另一个对象。

它们都是包含原始数据的对象。 您的软件解决方案将以它们共同实现最终目标的方式对这些对象进行编程。 这些对象将按照您的编程一起执行一些操作,并交付结果。

帮助理解这一点的一个很好的例子是电子邮件程序。

假设您有一个包含电子邮件内容的对象,例如收件人姓名和主题。 第二个对象详细说明了附件和发送电子邮件。 您将设计一个程序,该程序将自动组合这些对象,确保已准备好包含所需附件的完整电子邮件,并将其发送给收件人。

这就是 OOP 的工作原理。 然而,一些概念将其付诸行动。 让我们快速浏览一下这些概念以及它们的功能。

阅读: Python 是面向对象的语言吗?

如何定义一个类?

类定义了每个对象,并且是Python 中 OOP 概念的一个重要方面 假设您有四个对象,例如眼睛、耳朵、嘴巴和鼻子。 这些是面部的一部分,也就是类。

让我们开始了解如何定义一个类。

假设您正在谈论一个名为电子邮件的课程。

班级邮箱:

经过

这就是类的定义方式。 使用“pass”,这样当您在编译器中运行代码时,不会发出错误。

仅定义类可能对您没有多大帮助。 您需要添加一些属性以使其有吸引力并且代码有用。 因此,您需要将对象添加到您的类中。

._init_() 方法在定义类中的属性时被证明是有用的。

这将确保每次为类创建新对象时,此方法都会将参数设置为初始状态,从而每次都初始化一个新对象。

此方法的第一个参数始终是 self,即使您为其分配了多个参数。

那么,在这种情况下会发生什么? 假设您创建了一个新类。 实例被转移到 self 参数。 结果, ._init_() 可以为定义的对象分配新的属性。

如果你还在琢磨怎么用,我们通过一个例子来了解一下。

班级邮箱:

def ._init_(自我,姓名,收件人,地址):

self.name = 名称

self.recipient = 收件人

self.address = 地址

让我们分解这段代码以便更好地理解。

上面代码中表示的缩进很关键。 在 Python 中使用 OOP 编写程序时,您应该匹配相同的内容 让我们了解一下上面代码中的self变量。

self.name 生成一个名为 name 的属性。 name 参数的值分配给该属性。 同样,属性和值也被分配给其他自变量。

这些属性称为实例。 您将需要指定特定实例中提到的每个属性的值。 假设有两种类型的电子邮件——欢迎和培养。 两种情况下的电子邮件收件人会有所不同(欢迎电子邮件和培养电子邮件)。

另一方面,类属性是不同的; 它们将包含所有类实例的相同值。 例如,这些都是入站电子邮件。 这是您可以为它们定义的类属性。

班级邮箱:

#类属性

电子邮件:“入站电子邮件”

def ._init_(自我,姓名,收件人,地址):

self.name = 名称

self.recipient = 收件人

self.address = 地址

了解:如何编写、编译和运行 Java 项目

了解类和实例变量

让我们以上面的例子为例,我们创建了一个类属性以及两个实例变量,以更好地理解Python 中的 OOP。

班级邮箱:

电子邮件:“入站电子邮件”

def ._init_(自我,姓名,收件人,地址):

self.name = 名称

self.recipient = 收件人

self.address = 地址

让我们谈谈在这个类中实例化对象。 您需要为每个对象设置值。 如本指南前面部分所述,这将是每个对象的初始值。 如果您不为这些对象赋值,那么您将收到 TypeError。

>>> 电子邮件()

回溯(最近一次通话最后):

<module> 中的文件“<pyshell#6>”,第 1 行

电子邮件 ()

类型错误:__init__() 缺少 4 个位置参数:“姓名”、“收件人”和“地址”

我们可以在类名之后立即添加值。

培养电子邮件 = 电子邮件(培养,大卫,[email protected]

欢迎电子邮件 = 电子邮件(欢迎,Daisy,[email protected]

使用上面的代码,我们生成了两个实例,用于培养电子邮件和欢迎电子邮件。 让我们检查上面代码的类实例之后定义的 __init__() 。 我们看到四个参数,包括self。 但是,没有提到 self 的变量。 让我们明白为什么?

所以,每当你在一个类中创建一个新对象时,你就是在实例化这个类。 执行此操作时,您将分配一个内存地址,变量将存储在其中。 一旦你实例化了一个新对象,Python 就会自动创建一个实例,并将它传递给 .__init__() 方法中的第一个变量。 结果,在此方法中删除了自我。

使用类变量,您可以确保您创建的每个实例都有一个与之关联的变量或值。 这将确保更快、更容易的结果,从而为您的编程得出更安全的结论。

另请阅读:必须阅读 47 OOPS 面试问题和答案,适合应届生和有经验的人

加起来

我们已经了解了使用 Python OOP 编程模型创建类、对象和方法的各个方面。 除此之外,我们还了解了实例和实例化等概念,它们是 Python 中 OOP 编程的核心。 接下来,您将需要了解管理这些实例和类的原则,例如继承、多态性、抽象和封装。 它们是Python 中的核心 OOP 概念,驱动您的应用程序及其结果。

要在 Python 漏斗中走得更远,您需要清楚并扎根您的基础知识。 所以,潜入课堂并了解它是如何工作的。 在设置应用程序之前,对这些变量进行一些尝试,并了解它们的结果。

如果您对学习数据科学以走在快节奏的技术进步的前沿感到好奇,请查看 upGrad 和 IIIT-B 的数据科学 PG 文凭,并为未来提升自己的技能。

为什么我们使用 OOP?

面向对象编程 (OOP) 是一种编程框架,它依赖于开发可重用“对象”及其属性和行为,可以对其进行操作、操作和打包。 Python 支持 OOP 和其他框架。 在 Python 中,您通过使用类来实现 OOP。 Python 具有面向对象编程的所有常见特征。 开发人员在他们的 Python 应用程序中使用 OOP,因为它使代码更易于重用并且更容易处理更大的程序。 因为一个类只能定义一次并多次使用,OOP 系统可以防止您重复代码。 因此,OOP 使遵循“不要重复自己”(DRY)概念变得简单。

什么是类?

Python 类类似于生成新对象的蓝图。 对象是您在编码时想要修改或更改的任何东西。 当我们实例化一个类对象时,当我们定义一个变量时,就会从头开始创建一个新对象。 类对象可以根据需要多次重复使用。 一个类用于构造每个项目。 将其视为某种物品的蓝图。 类列出了该类型对象所需的属性,但不为它们分配值。 类还指定由相同类型的所有对象共享的方法。

什么是实例变量?

在 Python 中,类实例拥有实例变量。 实例变量的值可能会根据与其链接的实例而改变。 这与类变量不同,类变量只能分配一个值。 实例变量在类方法中声明。 当我们声明一个类时,我们可以为实例变量赋值。 当我们声明类时,我们提供我们希望分配的值作为参数。