Python中的数据隐藏:什么是,优点和缺点[带有编码示例]

已发表: 2021-02-05

目录

什么是数据隐藏?

它是一种在面向对象编程 (OOP) 中用于隐藏的方法,目的是在计算机代码中隐藏信息/数据。 内部对象详细信息(例如数据成员)隐藏在类中。 它保证对类成员的数据访问受限,同时保持对象完整性。 数据隐藏包括将数据和函数组合成一个单元以通过限制从类外部对数据的直接访问来隐藏类内的数据的过程。 如果您是数据科学的初学者并想获得专业知识,请查看我们来自顶尖大学的数据科学课程。

数据隐藏通过避免程序中其他类的不必要进入,帮助计算机程序员创建具有独特数据集和功能的类。 作为 OOP 中的一种软件开发技术,它确保独占数据访问并防止数据中有意或无意的更改。 软件组件中这些有限的相互依赖性有助于降低系统复杂性并提高程序的健壮性。

数据隐藏也称为信息隐藏或数据封装。 数据封装是为了向用户隐藏应用程序实现细节。 由于两者背后的意图相同,因此封装也称为数据隐藏。 当一个数据成员在类中被提及为私有时,它只能在同一个类中访问,而在该类之外不可访问。

Python中的数据隐藏

Python 正在成为一种流行的编程语言,因为它适用于所有领域并且具有简单的程序实现工具和库。 Python 文档将数据隐藏定义为将客户端与程序实现的一部分隔离开来。 模块中的一些对象是内部的、不可见的,并且用户无法访问。

程序中的模块足够开放,可以理解如何使用应用程序,但用户无法知道应用程序是如何工作的。 因此,数据隐藏提供了安全性,同时避免了依赖性。 Python 中的数据隐藏是防止访问应用程序中特定用户的方法。

Python 中的数据隐藏是通过在属性名称(前缀)之前使用双下划线来完成的。 这使属性私有/不可访问,并对用户隐藏它们。 Python 没有真正意义上的秘密。 尽管如此,私有方法和属性的名称在内部还是在运行中被修改和取消修改,使得它们无法通过它们的给定名称访问。

Python 中的数据隐藏示例

#!/usr/bin/python

JustCounter

__secretCount = 0

默认计数自我):

自我 __secretCount += 1

打印自我 __secretCount

计数器= JustCounter ()

计数器 ()

计数器 ()

打印计数器 __secretCount

输出

1

2

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

<module> 中的文件“test.py”,第 12 行

打印计数器.__secretCount

AttributeError:JustCounter 实例没有属性“__secretCount”

Python 在内部更改 object._className__attrName 访问的类中成员的名称。

如果最后一行更改为:

…………………………

打印计数器._JustCounter__secretCount

然后它工作,输出是:

1

2

2

数据隐藏的优势

  • 类中的对象与不相关的数据断开连接。
  • 它提高了针对无法访问机密数据的黑客的安全性。
  • 它可以防止程序员意外链接到不正确的数据。 如果程序员在代码中链接这些数据,它只会通过指出错误更正来返回错误。
  • 它将对象隔离为 OOP 的基本概念。
  • 通过对公众隐藏易失性数据,它有助于防止损坏数据

数据隐藏的缺点

  • 它有时可能会迫使程序员使用额外的编码。
  • 可见和不可见数据之间的链接使对象工作得更快,但数据隐藏阻止了这种链接。
  • 数据隐藏会使程序员更难,并且需要编写冗长的代码来在隐藏的数据中创建效果。

因此,当涉及到应用程序中特定信息的隐私和安全性时,数据隐藏在 Python 中很有帮助。 它增加了程序员的工作量,同时链接代码中的隐藏数据。 但是,它提供的优势确实是不可避免的。

另请阅读: Python 面试问答

结论

要免费加入我们的 Python 在线课程,您只需按照以下步骤操作:

  • 前往我们的 upStart 页面
  • 选择“Python for Data Science”课程
  • 点击注册
  • 完成注册过程

而已。 您可以通过我们新推出的 upStart 计划免费在线学习 Python,并开始您的数据科学之旅。 你只需要在几周内每天投入 30 分钟。 该计划不需要金钱投资。

立即注册并开始使用。

如果您对此主题有任何问题或建议,请在下面的评论中告诉我们。 我们很乐意听取您的意见。

如果您想了解数据科学,请查看 IIIT-B 和 upGrad 的数据科学执行 PG 计划,该计划是为在职专业人士创建的,提供 10 多个案例研究和项目、实用的实践研讨会、行业专家的指导、1与行业导师一对一,400 多个小时的学习和顶级公司的工作协助。

Python 中隐藏的数据是什么?

数据隐藏是面向对象编程的核心概念之一,它限制了外界对数据的访问。 在“私人”访问说明符的帮助下,诸如数据成员之类的细节被隐藏起来。 请考虑以下示例以更好地理解。
假设我们有一个名为 myClass 的类和一个名为 __privateCounter 的私有成员。 在这个类中,我们有一个名为 myFunc 的函数,它将 __privateCounter 的值加 1 并打印出来。 在类之外,我们创建了该类的一个对象并使用该对象调用 myFunc。 现在,如果我们尝试使用这个对象打印 __privateCounter,它会抛出一个错误。
在上面的例子中,“__privateCounter”默认是“myClass”类的私有成员。 由于我们已经对其进行了数据隐藏,因此无法在声明它的类之外访问它。 要访问私有成员,我们必须定义一个成员函数,在本例中为“myFunc”。

数据隐藏的优点和缺点是什么?

虽然数据隐藏是 OOP 的核心概念,有很多优点,但也有一些缺点。 以下是 Python 中数据隐藏的一些最显着的优点和缺点:
优点
1. 将易失性数据声明为私有,有助于防止滥用和操纵易失性数据。
2.类的数据成员与无关数据脱链。
3、将对象隔离为OOP的基本概念。
缺点
1. 程序员经常被迫编写冗长的代码以保护易失性数据免受客户端的影响。
2. 对象工作相对较慢,因为可见数据和不可见数据之间的链接使其工作得很快,而数据隐藏阻止了这种链接。

数据隐藏与数据抽象有何不同?

数据隐藏支持限制数据的想法,使其无法被外界访问或修改。 例如,员工的工资详细信息对其他员工是隐藏的。 在 Python 中,这是通过使用“私有访问修饰符”来实现的。
数据抽象是指隐藏内部实现,只向外界展示特征的思想。 例如,在计算器中,您只会看到计算器执行的操作。 但是,您看不到这些操作的内部工作。 在 Python 中,使用不同的访问说明符来实现这一点。