Python 类和对象 [附示例]

已发表: 2021-06-25

OOP——面向对象编程的缩写——是一种依赖对象和类来创建函数式程序的范例。 OOP 致力于代码的模块化,类和对象有助于编写可重用的简单代码片段,这些代码片段可用于创建更大的软件功能和模块。 C++、Java 和 Python 是三种最常用的面向对象编程语言。 然而,当谈到今天的用例时——比如数据科学和统计分析——Python 胜过其他两个。

这并不奇怪,因为全球的数据科学家都对 Python 编程语言的功能发誓。 如果您打算开始从事数据科学的职业并希望掌握 Python,那么了解类和对象应该是您的首要任务。

通过本文,我们将帮助您了解 Python 中对象和类背后的所有细微差别,以及如何开始创建自己的类并使用它们。

目录

Python 中的类

Python 中的类是用户定义的原型,使用它创建对象。 简而言之,类是一种将数据功能捆绑在一起的方法。 这两个关键字很重要。 数据是指实例化或定义的任何变量,而功能是指可以对该数据执行的任何操作。 连同捆绑在一个包中的数据和功能,我们得到了类。

要了解创建类的必要性,请考虑以下简单示例。 假设,您希望跟踪您附近的猫,它们具有不同的特征,如年龄、品种、颜色、体重等。您可以使用列表并以 1:1 的方式跟踪元素,即,您可以将品种跟踪到年龄,或年龄到体重使用列表。 如果应该有 100 只不同的猫怎么办? 如果要添加更多属性怎么办? 在这种情况下,使用列表往往是杂乱无章的。

这正是课程的用武之地!

类可帮助您创建具有自己的数据成员(变量)和成员函数的用户定义数据结构。 您可以通过为类创建一个对象来访问这些变量和方法(我们稍后会详细讨论)。 所以,从某种意义上说,类就像一个对象的蓝图。

此外,创建类会自动创建一种新类型的对象——这允许您进一步创建更多相同类型的对象。 每个类实例都可以附加属性以保持其状态。 类实例本身可以具有用于修改状态的方法(由它们的类定义)。

Python类的一些要点:

  • 类是使用关键字class 创建的。
  • 属性是特定于您创建的类的变量。
  • 这些属性在本质上始终是公共的,可以通过在类名后面使用点运算符来访问。 例如, ClassName.AttributeName将为您获取该特定类的特定属性详细信息。

定义类的语法:

类类名:

# 语句-1

.

.

.

# 语句-N

例如:

猫班:

经过

在上面的示例中,class 关键字表示您正在创建一个类,后跟该类的名称(在本例中为 Cat)。 这个类的作用还没有定义。

在 Python 中使用类的优点

  • 类可帮助您将所有不同类型的数据正确组织在一个地方。 通过这种方式,您可以保持代码的简洁和模块化,从而提高代码的可读性。
  • 使用类可以让您受益于另一种 OOP 范式——称为继承。 这是一个类继承另一个类的属性的时候。
  • 类允许您覆盖任何标准运算符。
  • 类使您的代码可重用,从而使您的程序更加高效。

Python 中的对象

对象只是您定义的任何类的一个实例。 创建类的那一刻,已经创建了一个自动实例。 因此,就像在示例中一样,Cat 类自动实例化一个对象,就像一只真正的猫——波斯品种和 3 岁。 您可以拥有许多具有不同属性的猫的不同实例,但要使其有意义 - 您需要一个类作为您的指南。 否则,您最终会感到迷茫,不知道需要什么信息。

一个对象大致可以通过三件事来表征:

  • 状态:这是指任何对象的各种属性以及它可以显示的各种属性。
  • 行为:这基本上表示该对象的方法。 它还反映了该特定对象如何与其他对象交互或响应。
  • 身份:身份是对象的唯一名称,可以在需要时调用它。

1. 声明对象

声明对象也称为实例化一个类,因为一旦定义了一个类,就会在其自身中创建一个默认对象(如我们之前所见)——这是该类的实例。 同样,每次创建对象时,实际上都是在创建类的新实例。

就我们前面提到的三件事(状态、行为、身份)而言,所有的实例(对象)共享行为和状态,只是身份不同。 根据程序员的要求,一个类可以有任意数量的对象。

看看下面的例子。 这是一个解释如何实例化类的程序。

猫班:

# 一个简单的类

# 属性

attr1 = “猫”

attr2 = “猫”

# 一个示例方法

def 乐趣(自我):

打印(“我是一个”,self.attr1)

打印(“我是一个”,self.attr2)

# 驱动代码

# 对象实例化

汤姆=猫()

# 访问类属性

# 通过对象和方法

打印(汤姆.attr1)

汤姆.fun();

这个简单程序的输出如下:

猫科动物

我是猫科动物

我是一只猫

如您所见,我们首先创建了一个名为 cat 的类,然后实例化了一个名为“Tom”的对象。 我们得到的三个输出如下:

  • 猫科动物——这是语句 print(Tom.attr1) 的结果。 由于 Tom 是 Cat 类的对象并且 attr1 已设置为 Feline,因此该函数返回输出 Feline。
  • 我是猫科动物——Tom.fun(); 使用名为 Tom 的对象来调用 cat 类中的一个函数,称为 'fun'。 Tom 对象为函数带来了属性,因此函数输出以下两个句子——“I'm a feline”。
  • 我是一只猫——原因与上述相同。

现在您已经了解了类和对象在 Python 中是如何工作的,让我们来看看一些基本方法。

2. 自我方法

任何类中定义的所有方法都需要在函数定义中具有额外的第一个参数。 程序员没有给这个参数赋值。 但是,当调用该方法时,Python 会为其提供一个值。

因此,如果你定义一个没有参数的函数,它在技术上仍然有一个参数。 这在 Python 中称为“自我”。 为了更好地理解这一点,您可以修改 C++ 中的指针概念或在 Java 中引用它们。 self 方法的工作方式基本相同。

为了更好地理解这一点——当我们调用对象的任何方法时,例如:

myObject.myMethod(arg1, arg2),Python 自动将其转换为 myClass.myMethod(myObject, arg1, arg2)。

所以你看,对象本身成为方法的第一个参数。 这就是 Python 中的 self 的意义所在。

3. __init__ 方法

此方法类似于 Java 或 C++ 中的构造函数。 与构造函数一样,init 方法用于初始化对象的状态。 这包含在创建对象时执行的指令(语句)的集合。 当为一个类实例化一个对象时,init 方法会自动运行你初始化的方法。

这是一段代码可以更好地解释这一点:

# 带有 init 方法的示例类

类人:

# 初始化方法或构造函数

def __init__(self, name):

self.name = 名称

# 样本方法

def say_hi(self):

print('你好,我叫', self.name)

p =人(“山姆”)

p.say_hi()

输出:

你好,我的名字是山姆

从世界顶级大学在线学习数据分析课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

类和实例变量

实例变量对于每个实例都是唯一的,而类变量用于类的所有实例共享的方法和属性。 因此,实例变量基本上是在构造函数或带有 self 的方法中赋值的变量。 另一方面,类变量是那些在类中赋值的变量。

通过以下代码了解如何使用构造函数(init 方法)定义实例变量:

猫班:

# 类变量

动物='猫'

# init 方法或构造函数

def __init__(自我,品种,颜色):

# 实例变量

self.breed = 品种

self.color = 颜色

# Dog 类的对象

汤姆=猫(“波斯”,“黑色”)

Snowy = cat(“独立”、“白色”)

打印(“汤姆详细信息:')

print('Tom is a', Tom.animal)

print('品种:', Tom.breed)

打印('颜色:',汤姆.color)

print('\n下雪细节:')

print("Snowy is a', Snowy.animal)

print('品种:', Snowy.breed)

print('颜色:', Snowy.color)

如果您逐行遵循上述代码,您将收到以下输出:

输出:

汤姆详细信息:

汤姆是一只猫

品种:波斯

颜色:黑色

雪景详情:

雪是一只猫

种族:独立

白颜色

综上所述

Python 是一种相对简单的编程语言,尤其是对于初学者而言。 一旦掌握了它的基础知识,您就可以使用各种 Python 库并解决特定于数据的问题。 但是,请记住,虽然旅程从了解类和对象开始,但您还必须学习如何使用不同的对象、类及其细微差别。

我们希望这篇文章有助于澄清您对 Python 中的类和对象的疑问。 如果您有任何问题,请在下方给我们留言 - 我们会尽快回复您!

如果您正在寻找职业转变并寻求专业帮助 - upGrad在这里为您服务。 查看我们IIIT-B合作提供的数据科学执行 PG 计划熟悉 14 多种编程语言和工具(包括 Python),同时还可以访问 30 多个行业相关项目。 任何流派的学生都可以报名参加该课程,前提是他们的学士学位至少达到 50%。

我们在 85 多个国家/地区拥有稳固的学习者基础、全球 40,000 多名付费学习者和 500,000 多名快乐工作的专业人士。 我们的 360 度职业帮助,结合全球学生的学习和头脑风暴,让您充分利用您的学习体验。

Python 中的类和对象是什么?

类是绑定实体的属性和功能的模板或蓝图。 在 Python 中,关键字 class 用于定义一个类。 所有具有相似属性的实体或对象都可以放在一个类下,并且可以由成员函数访问。
对象是类的一个实例。 一旦创建了一个类,对象就会获得该类的所有信息。 它就像具有实际值的受人尊敬的类的副本。 一个对象由三个因素分类:
一种。 状态
湾。 行为
C。 身份

Python 遵循哪种编程范式?

有四种主要的可区分范式,紧随其后的是 Python 面向对象、过程、函数和命令式。 Python 强烈支持面向对象的概念; 但是,它不是纯粹的面向对象的编程语言。
支持各种编程范式的原因是它明显受到一些脚本(如 CoffeeScript)和面向对象的编程语言(如 Ruby)的影响。 它还与 R 等语言相结合,以提高效率和计算能力。
作为一种多范式语言,Python 被认为是最通用的语言之一。 它广泛用于开发、数据分析、网页抓取和自动化。

Python 中的访问修饰符是什么?

与其他面向对象的编程语言类似,Python 中的类也具有三个访问修饰符:
一种。 公共访问修饰符:指定为公共的类成员可以被任何函数直接访问,即成员函数以及非成员函数。 如果未指定访问说明符,则编译器默认将所有类成员视为公共成员。
湾。 私有访问修饰符:这些类成员对其他类成员隐藏。 它们只能由定义它们的类的成员函数访问。
C。 受保护的访问修饰符:被指定为受保护的类成员只能被同一个类的成员函数访问,如果试图在类外访问会抛出错误。 私有访问说明符和受保护访问说明符之间的唯一主要区别是受保护成员可以被继承,而私有成员不能被继承。