类变量与实例变量的区别17 Mar 2025 | 6 分钟阅读 Python 中的变量面向对象编程允许开发人员在类级别或实例级别使用变量。变量是代表程序中正在使用的值的必要符号。 类级别的变量称为类变量,而实例级别的变量称为实例变量。 当我们期望变量在各个实例之间保持一致,或者需要初始化变量时,可以将该变量定义在类级别。当我们期望变量在各个实例之间发生显著变化时,可以将该变量定义在实例级别。 软件开发中的一个重要原则是DRY原则,即Don't Repeat Yourself(不要重复自己)。该原则侧重于限制代码中的复制粘贴,而面向对象编程遵守DRY原则,因为它减少了冗余。 在本教程中,我们将通过Python 编程语言了解面向对象编程中的类变量和实例变量。我们还将讨论这两种变量之间的基本区别。 那么,让我们开始吧。 理解类变量类变量在类定义内部声明。由于这些变量属于类本身,因此所有类的实例都共享它们。因此,除非我们使用类变量来初始化变量,否则它们通常对于每个实例都具有相同的值。 按照惯例,类变量定义在所有方法之外,通常放在类头部下方,构造函数和其它函数方法之前。 让我们看一个类变量的以下语法。 语法 在上面的代码片段中,“var”变量被赋予了“xyz”值。 我们可以定义一个名为“Class_name”类的对象(我们称之为“myObj”),并通过点符号打印该变量。 语法 让我们来看一个基于类变量概念的示例。 示例 输出 Name of the Animal: Lion 说明 在上面的代码片段中,我们将一个类定义为“Animal”并声明了类变量。然后,我们使用 my_Animal 对象实例化该类,并打印最终值给用户。结果,程序返回了类变量的值。 让我们尝试向类添加多个类变量并打印它们的值。 示例 输出 Name of the Animal: Lion This Animal is found in: Jungle This Animal is a: Carnivore Population of this Animal: 20000 approx. 说明 在上面的代码片段中,我们定义了一个类并声明了一些变量。然后,我们实例化了该类并打印了所需的用户输出。我们可以看到,这些类变量可以包含 Python 中可用的任何数据类型。如上面的程序所示,我们有字符串和一个整数。 此外,我们还可以注意到 myAnimal 对象可以访问类中的所有变量,并在执行程序时打印它们。 类变量使我们能够在类定义时定义变量。这些变量及其对应的值随后可供类的所有对象访问。 理解实例变量属于类实例的变量称为实例变量。这句话的意思是,对于类的每个实例或对象,实例变量是不同的。 与类变量不同,实例变量定义在函数内部。 下面显示了使用实例变量的语法。 语法 在上面的代码片段中,var1 和 var2 是实例变量。 让我们来看一个基于实例变量的示例。 示例 输出 Roll Number of the Student: 102 Name of the Student: Sam Age of the Student: 13 说明 在上面的代码片段中,我们定义了一个 Student 类,并在构造函数方法中作为参数传递了 id、name 和 age 等变量。然后,我们实例化了该类,并为用户打印了实例变量的值。 结果,我们将获得一个由为 dBase 实例初始化的变量值组成的集合。 实例变量归类对象所有,使开发人员能够在分配给这些变量的每个实例中存储不同的值。 理解类变量和实例变量之间的区别既然我们已经理解了这两种变量的基本概念以及它们如何在类中使用,那么让我们来理解类变量与实例变量的区别。这两种变量之间的主要区别如下表所示:
下一个主题Python 中的完美数 |
Python 受欢迎的原因之一是它附带了大量的库,用于简化复杂的任务。Python IMDB 就是其中之一,可能对电影爱好者有所帮助。Python IMDbPY 库用于检索和管理...
5 分钟阅读
理解二维码 二维码是一种机器可读的条形码,以二维像素化形式设计。二维码可用于存储各种数据。“QR”是“快速响应”(Quick Response)的缩写。二维码于1994年由日本工程师原昌宏(Masahiro Hara)发明...
5 分钟阅读
在执行某些任务时,我们必须出于多种原因使用图表,例如折线图、条形图等,例如使任务更具交互性,以非常有趣的方式传递信息,图表易于理解且不言自明等。这就是为什么绘制图表或...
阅读 8 分钟
Bokeh 是 Python 的交互式数据可视化库。它使用 HTML 和 JavaScript 语言创建其绘图。其基本目标是现代网站浏览器,用于呈现提供的优雅、简洁地构建具有高性能交互性的新颖图形。在本教程中,我们将学习如何创建...
阅读 3 分钟
Matplotlib Matplotlib 是一个 Python 库,它使用数值和数学函数扩展了 NumPy 库。Pyplot 是一个基于状态的接口,类似于 MATLAB 的 Matplotlib 模块。刻度是显示在轴上的数据点符号。Matplotlib 的默认刻度定位器和格式化程序旨在在以下方面有用...
阅读 3 分钟
Selenium 是一个强大的自动化工具,广泛用于网络应用程序测试和网络抓取。虽然 Selenium 提供了与 Web 元素交互和导航网页的各种策略,但有时您需要更高级的功能来执行特定任务。其中一项此类高级功能是...
阅读 4 分钟
列表是 Python 中最常用的数据结构之一。我们不断在许多不同的应用程序中使用列表,从解决简单问题到复杂问题。在 Python 中,列表取代了数组,具有以下优点:大小动态,可以在单个列表中存储不同数据类型的项目 我们...
阅读 3 分钟
Python GUI(图形用户界面)指的是允许用户与软件应用程序进行交互的视觉元素和智能组件。GUI 提供了一种直观且用户友好的方式来访问应用程序的功能,通常包括窗口、按钮、菜单、文本框等...
7 分钟阅读
在之前的教程中,我们讨论了可以使用 Python 编程语言的不同包和模块对 PDF 文件执行的各种操作。我们学习了可用于操作 PDF 文件的不同 Python 库的工作原理。此外,我们...
阅读 8 分钟
好的卷积网络是庞大的机器,拥有许多隐藏层和数百万个参数。“隐藏层越多,网络越好”实在是一个糟糕的格言。一些著名的网络包括 ResNet、AlexNet、VGG、Inception 等。为什么这些网络如此有效?如何……
阅读 10 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India