Скрытие данных в Python: что это такое, преимущества и недостатки [с примером кода]

Опубликовано: 2021-02-05

Оглавление

Что такое скрытие данных?

Это метод, используемый в объектно-ориентированном программировании (ООП) для сокрытия информации/данных в компьютерном коде. Внутренние детали объекта, такие как элементы данных, скрыты внутри класса. Это гарантирует ограниченный доступ к данным членам класса при сохранении целостности объекта. Сокрытие данных включает в себя процесс объединения данных и функций в единое целое для сокрытия данных внутри класса путем ограничения прямого доступа к данным извне класса. Если вы новичок в науке о данных и хотите получить опыт, ознакомьтесь с нашими курсами по науке о данных в ведущих университетах.

Сокрытие данных помогает программистам создавать классы с уникальными наборами данных и функциями, избегая ненужного входа из других классов в программу. Будучи методом разработки программного обеспечения в ООП, он обеспечивает эксклюзивный доступ к данным и предотвращает преднамеренные или непреднамеренные изменения данных. Эти ограниченные взаимозависимости в программных компонентах помогают уменьшить сложность системы и повысить надежность программы.

Сокрытие данных также известно как сокрытие информации или инкапсуляция данных. Инкапсуляция данных выполняется, чтобы скрыть детали реализации приложения от пользователей. Поскольку намерение, стоящее за обоими, одинаково, инкапсуляция также известна как сокрытие данных. Когда элемент данных упоминается как закрытый в классе, он доступен только в пределах того же класса и недоступен вне этого класса.

Скрытие данных в Python

Python становится популярным языком программирования, поскольку он применим ко всем секторам и имеет простые инструменты и библиотеки для реализации программ. Документ Python определяет скрытие данных как изоляцию клиента от части реализации программы. Некоторые объекты в модуле остаются внутренними, невидимыми и недоступными для пользователя.

Модули в программе достаточно открыты, чтобы понять, как пользоваться приложением, но пользователи не могут знать, как работает приложение. Таким образом, сокрытие данных обеспечивает безопасность, а также позволяет избежать зависимости. Скрытие данных в Python — это метод предотвращения доступа определенных пользователей в приложении.

Скрытие данных в Python осуществляется с помощью двойного подчеркивания перед (префиксом) имени атрибута. Это делает атрибут приватным/недоступным и скрывает их от пользователей. В Python нет ничего секретного в прямом смысле. Тем не менее, имена частных методов и атрибутов внутренне искажаются и исправляются на лету, что делает их недоступными по их именам.

Пример сокрытия данных в Python

#!/usr/бин/питон

класс JustCounter :

__secretCount = 0

счетчик деф ( сам ):

сам . __secretCount += 1

распечатать себя . __secretCount

счетчик = JustCounter ()

счетчик . считать ()

счетчик . считать ()

распечатать счетчик . __secretCount

Выход

1

2

Traceback (последний последний вызов):

Файл «test.py», строка 12, в <module>

счетчик печати.__secretCount

AttributeError: экземпляр JustCounter не имеет атрибута '__secretCount'

Python внутренне изменяет имена членов в классе, доступ к которому осуществляется с помощью object._className__attrName.

Если последнюю строку изменить так:

…………………….

счетчик печати._JustCounter__secretCount

Затем он работает, и вывод:

1

2

2

Преимущества сокрытия данных

  • Объекты внутри класса отключены от нерелевантных данных.
  • Это повышает безопасность от хакеров, которые не могут получить доступ к конфиденциальным данным.
  • Это предотвращает случайную привязку программистов к неверным данным. Если программист свяжет эти данные в коде, он только вернет ошибку, указав исправления в ошибке.
  • Он изолирует объекты как основную концепцию ООП.
  • Это помогает предотвратить повреждение изменчивых данных, скрывая их от общественности .

Недостатки сокрытия данных

  • Иногда это может заставить программиста использовать дополнительное кодирование.
  • Связь между видимыми и невидимыми данными ускоряет работу объектов, но скрытие данных предотвращает эту связь.
  • Сокрытие данных может усложнить работу программиста и потребовать написания длинных кодов для создания эффектов в скрытых данных.

Таким образом, скрытие данных полезно в Python, когда речь идет о конфиденциальности и безопасности конкретной информации в приложении. Это увеличивает работу программистов при связывании скрытых данных в коде. Но преимущества, которые он предлагает, действительно неизбежны.

Читайте также: Вопросы и ответы на собеседовании по Python

Заключение

Чтобы бесплатно присоединиться к нашему онлайн-курсу Python, вам нужно всего лишь выполнить следующие шаги:

  • Перейдите на нашу страницу upStart
  • Выберите курс «Python для науки о данных»
  • Нажмите «Зарегистрироваться»
  • Завершите процесс регистрации

Вот и все. Вы можете изучать Python онлайн бесплатно с помощью нашей недавно запущенной программы upStart и начать свое путешествие по науке о данных. Вам нужно будет инвестировать всего 30 минут в день в течение нескольких недель. Эта программа не требует денежных вложений.

Зарегистрируйтесь сегодня и начните.

Если у вас есть какие-либо вопросы или предложения по этой теме, сообщите нам об этом в комментариях ниже. Мы хотели бы услышать от вас.

Если вам интересно узнать о науке о данных, ознакомьтесь с программой IIIT-B & upGrad Executive PG по науке о данных, которая создана для работающих профессионалов и предлагает более 10 тематических исследований и проектов, практические семинары, наставничество с отраслевыми экспертами, 1 -на-1 с отраслевыми наставниками, более 400 часов обучения и помощи в трудоустройстве в ведущих фирмах.

Что скрывают данные в Python?

Сокрытие данных — одна из основных концепций объектно-ориентированного программирования, которая ограничивает доступ к данным из внешнего мира. Такие детали, как элементы данных, скрыты с помощью спецификатора доступа «Private». Рассмотрим следующий пример для лучшего понимания.
Предположим, у нас есть класс с именем myClass и частный член с именем __privateCounter. Внутри этого класса у нас есть функция myFunc, которая увеличивает значение __privateCounter на 1 и печатает его. Вне класса мы создали объект класса и вызвали myFunc, используя этот объект. Теперь, если мы попытаемся напечатать __privateCounter, используя этот объект, он выдаст ошибку.
В приведенном выше примере «__privateCounter» по умолчанию является закрытым членом класса «myClass». Поскольку мы выполнили скрытие данных, доступ к ним вне класса, в котором они были объявлены, невозможен. Чтобы получить доступ к закрытым членам, мы должны определить функцию-член, в данном случае это «myFunc».

Каковы преимущества и недостатки сокрытия данных?

Хотя сокрытие данных является основной концепцией ООП и имеет много преимуществ, у него есть и некоторые недостатки. Ниже приведены некоторые из наиболее значительных преимуществ и недостатков сокрытия данных в Python:
Преимущества
1. Это помогает предотвратить неправомерное использование и манипулирование изменчивыми данными, объявляя их как частные.
2. Элементы данных класса отделены от нерелевантных данных.
3. Он изолирует объекты как основную концепцию ООП.
Недостатки
1. Программисты часто вынуждены писать длинные коды, чтобы защитить нестабильные данные от клиентов.
2. Объекты работают сравнительно медленнее, так как связь между видимыми и невидимыми данными ускоряет их работу, а скрытие данных предотвращает эту связь.

Чем сокрытие данных отличается от абстракции данных?

Сокрытие данных поддерживает идею ограничения данных, чтобы внешний мир не мог получить к ним доступ или изменить их. Например, данные о зарплате сотрудника скрыты от других сотрудников. В Python это достигается с помощью «модификатора приватного доступа».
Абстракция данных относится к идее сокрытия внутренней реализации и демонстрации только функций внешнему миру. Например, в калькуляторе отображаются только операции, выполняемые калькулятором. Однако вы не можете увидеть внутреннюю работу этих операций. В Python для реализации этого используются разные спецификаторы доступа.