Python 中的类和对象

2025年3月17日 | 阅读 7 分钟

你想盖房子。开始建造过程的第一件事是什么?你创建一个你想要的房子的计划。你遵循计划来建造房子。计划就像一个尚未建造的房子的蓝图,将根据它来建造。

我们为什么需要计划?为了在正确的位置和正确的尺寸上组织所有组件,例如不同的房间、墙壁、窗户和门。

类的定义

在任何编程语言中,类是用户定义的计划或蓝图,用于创建类的对象或实例。

你可能会想,为什么我们需要在编程中使用类。我们可以创建一个像变量或结构一样的东西,存储我们想要的东西,然后使用它。

  • 一个类可以有自己的属性 - 变量和函数,具有预存储的值和功能。
  • 示例情况:如果我们想在一个孤儿院存储不同年龄段儿童的数据和他们的详细信息
  • 我们不能只是创建一个列表,然后在没有任何组织的情况下不断存储儿童的年龄和姓名。
  • 为多个年龄组创建多个列表——一个列表用于存储年龄,一个用于存储姓名,另一个用于匹配——会变得复杂并导致歧义。

语法

#类的定义

要点

  1. "class" 是 Python 库中的一个关键字。
  2. 类名必须大写
  3. 属性是类拥有的变量(在类内声明),创建的对象可以使用这些变量。
  4. 方法是类拥有的函数(在类内定义),创建的对象可以使用这些函数。
  5. 使用点 (.) 运算符创建的对象可以使用类的这些属性和方法。

示例程序

现在,让我们了解对象

对象 - 类的实例

现在,我们有了蓝图。现在是时候采取行动并实现类的想法了。房子——计划已经准备好了。是时候开始施工了。组织模式已经就绪。现在,我们一个一个地建造房间。你可以认为房子类的一个对象就是一个房间。我们可以创建许多对象——许多不同的房间。对象就像类的样本。

对象的特征

  1. 状态:对象的状态指的是对象的属性——关于对象的不同信息的不同变量。
  2. 身份:它是对象的名称,用于唯一地标识每个对象。
  3. 行为:对象行为指的是对象的方法——不同的功能。

对象特征的例子(随机)

Classes and Objects in Python
Object身份国家行为
    
一个人Rakesh有文化、合格、素食主义者说话、走路、阅读
一次购物促销国庆节促销开始、提供、结束、取消赚取忠诚度积分

如果我们创建了一个类,比如 people,那么一个人就是该类的一个对象。这个人的名字是标识对象的唯一身份;像 literate 和 vegetarian 这样的变量指的是对象的状态——对象的不同属性。像 walking、sleeping 这样的函数解释了人的行为(对象)。

如果对象是一只狗

Classes and Objects in Python

声明一个对象

对象名 = 类名()

根据需要,我们可以为单个函数创建任意数量的对象。因此,我们创建一个类并存储蓝图来完成一项任务或组织某事;我们将它们存储在称为属性的变量和称为方法的函数中。

然后,在程序中,当我们只需要类的功能或其属性和方法时,我们通过声明该类的对象来访问它们。

访问语法

让我们以上面的例子为例——一只狗。

程序

输出

The color of my dog is: Brown

现在,在学习类的方法时,我们需要了解self 变量__init__ 方法

  • __init__() 方法是一个构造函数,当创建一个新对象并初始化时,它会被默认调用。
  • “self” 不是 Python 的关键字。它是一个特殊变量。当我们在类中声明一个方法时,我们需要将第一个参数声明为 self。
  • 我们将能够使用这个 self 参数访问类的属性和方法。它保存传递给属性的参数。
  • 即使在 init 方法中,我们也必须将第一个参数声明为 self。
  • Self 确定类的当前实例;在 init 方法的情况下,它指的是新创建的对象,而在其他方法中,它指的是调用其方法的那一个对象。
  • 即使我们想创建一个没有参数的方法,我们也需要将 self 变量保留为该方法中的唯一参数。

语法看起来会像这样

示例程序

输出

Please enter the name of the student1: Santhosh
Please enter the age of the student1: 19
Please enter the name of the student2: Rakesh
Please enter the age of the student2: 19
Stud_1.name = Santhosh
Stud_2.name = Rakesh
 

输出

Enter the name of the person1: Mahesh
Enter the name of the person2: Rakesh
Person P1 name: Mahesh
Person P2 name: Rakesh

空类的属性

Python 语言允许程序员为声明为空类的对象创建属性。我们甚至可以修改不同对象中属性的值。

这是一个名为“Student_info”的空类的示例。在程序体中,我们为该类创建了一个对象 Stud_1,并为该类的 3 个属性赋值

输出

Stud_1.name: Sonu
Stud_1.age: 19
Stud_1.graduate: B-tech

我们上面讨论过 init 方法是构造函数。深入了解Python 中的构造函数:

构造函数可以理解为一种方法。我们使用它来执行操作或任务,例如初始化变量和其他在新对象创建时必须完成的任务。

在 Python 中,我们在所有类中使用相同的 __init__(self)。名称约定:两个前导和尾随下划线。它被设计成这样是为了防止与用户定义的方法产生歧义。

如果我们创建一个类而不使用构造函数,Python 会默认创建一个构造函数,该构造函数除了实例化创建的对象外,没有任何其他功能。

让我们总结一下到目前为止学到的主题

Python 中的每个类都将包含 3 个关键组成部分

  1. 构造函数
  2. 类的属性
  3. 类的方法

我们创建一个类。在类内部,我们构建带有 self 参数的构造函数 __init__() 以及我们在主体内部与类属性绑定的其他参数。因此,当我们使用一些参数创建一个对象时,这些参数将占用参数并存储在类属性中。

这在普通方法中是相同的,但在普通方法中,我们会有一个正在进行的任务,而在 init 中,它只是关于初始化参数。

self 关键字有助于绑定构造函数和其他方法的参数。它必须在任何方法中声明为第一个参数。

但是,所有这些类和对象的概念都是关于什么的?

OOPS - 面向对象编程

编程范例解释了在特定编程语言中设计和实现程序的**方法论。它展示了如何分析和解决一个程序。

OOPS 是一种常用的编程范例,Python 遵循此范例。顾名思义,它基于对象和类的概念。

OOPS 中有很多聪明且有用的概念,可以消除歧义地解决复杂问题。这种编程风格围绕对象。

使用对象,整个程序及其各个方面都可以被分解成对象并更容易地进行处理。简单地说,这使得程序易于理解、高效且维护成本更低。