Ukrywanie danych w Pythonie: co to jest, zalety i wady [z przykładem kodowania]

Opublikowany: 2021-02-05

Spis treści

Co to jest ukrywanie danych?

Jest to metoda stosowana w programowaniu obiektowym (OOP) do ukrywania z zamiarem ukrycia informacji/danych w kodzie komputerowym. Szczegóły obiektów wewnętrznych, takich jak składowe danych, są ukryte w klasie. Gwarantuje ograniczony dostęp do danych członkom klasy przy zachowaniu integralności obiektu. Ukrywanie danych obejmuje proces łączenia danych i funkcji w jedną jednostkę w celu ukrycia danych w klasie poprzez ograniczenie bezpośredniego dostępu do danych spoza klasy. Jeśli dopiero zaczynasz naukę danych i chcesz zdobyć wiedzę specjalistyczną, zapoznaj się z naszymi kursami nauki o danych na najlepszych uniwersytetach.

Ukrywanie danych pomaga programistom tworzyć klasy z unikalnymi zestawami danych i funkcjami, unikając niepotrzebnego wchodzenia z innych klas w programie. Będąc techniką tworzenia oprogramowania w OOP, zapewnia wyłączny dostęp do danych i zapobiega zamierzonym lub niezamierzonym zmianom danych. Te ograniczone współzależności w komponentach oprogramowania pomagają zmniejszyć złożoność systemu i zwiększyć niezawodność programu.

Ukrywanie danych jest również znane jako ukrywanie informacji lub enkapsulacja danych. Enkapsulacja danych ma na celu ukrycie szczegółów implementacji aplikacji przed jej użytkownikami. Ponieważ intencja obu jest taka sama, enkapsulacja jest również znana jako ukrywanie danych. Gdy element członkowski danych jest wymieniony jako prywatny w klasie, jest dostępny tylko w tej samej klasie i niedostępny poza tą klasą.

Ukrywanie danych w Pythonie

Python staje się popularnym językiem programowania, ponieważ ma zastosowanie do wszystkich sektorów i ma łatwe w obsłudze narzędzia i biblioteki do implementacji programów. Dokument Pythona definiuje ukrywanie danych jako izolowanie klienta od części implementacji programu. Niektóre obiekty w module są utrzymywane wewnątrz, niewidoczne i niedostępne dla użytkownika.

Moduły w programie są wystarczająco otwarte, aby zrozumieć, jak korzystać z aplikacji, ale użytkownicy nie mogą wiedzieć, jak działa aplikacja. W ten sposób ukrywanie danych zapewnia bezpieczeństwo, a także pozwala uniknąć zależności. Ukrywanie danych w Pythonie to metoda uniemożliwiająca dostęp określonym użytkownikom w aplikacji.

Ukrywanie danych w Pythonie odbywa się za pomocą podwójnego podkreślenia przed (prefiksem) nazwą atrybutu. To sprawia, że ​​atrybut jest prywatny/niedostępny i ukrywa je przed użytkownikami. Python nie ma nic tajnego w prawdziwym tego słowa znaczeniu. Mimo to nazwy prywatnych metod i atrybutów są wewnętrznie zniekształcane i rozszyfrowywane w locie, przez co są niedostępne pod ich imionami.

Przykład ukrywania danych w Pythonie

#!/usr/bin/python

klasa JustCounter :

__secretCount = 0

liczba definicji ( własna ):

ja . __tajemnica += 1

drukuj siebie . __secretCount

licznik = JustCounter ()

licznik . liczyć ()

licznik . liczyć ()

licznik wydruków . __secretCount

Wyjście

1

2

Traceback (ostatnie ostatnie połączenie):

Plik „test.py”, wiersz 12, w <module>

licznik wydruku.__secretCount

AttributeError: instancja JustCounter nie ma atrybutu „__secretCount”

Python wewnętrznie zmienia nazwy członków w klasie, do której uzyskuje się dostęp przez object._className__attrName.

Jeśli ostatnia linia zostanie zmieniona jako:

…………………….

licznik wydruku._JustCounter__secretCount

Wtedy to działa, a wyjście to:

1

2

2

Zalety ukrywania danych

  • Obiekty w klasie są odłączone od nieistotnych danych.
  • Zwiększa ochronę przed hakerami, którzy nie mają dostępu do poufnych danych.
  • Zapobiega to przypadkowemu połączeniu programistów z nieprawidłowymi danymi. Jeśli programista powiąże te dane w kodzie, zwróci tylko błąd, wskazując poprawki w błędzie.
  • Izoluje obiekty jako podstawową koncepcję OOP.
  • Pomaga zapobiegać uszkodzeniom danych nietrwałych, ukrywając je przed opinią publiczną .

Wady ukrywania danych

  • Czasami może to zmusić programistę do użycia dodatkowego kodowania.
  • Połączenie między widocznymi i niewidocznymi danymi sprawia, że ​​obiekty działają szybciej, ale ukrywanie danych zapobiega temu połączeniu.
  • Ukrywanie danych może utrudnić programiście i musi pisać długie kody, aby tworzyć efekty w ukrytych danych.

Dlatego ukrywanie danych jest pomocne w Pythonie, jeśli chodzi o prywatność i bezpieczeństwo określonych informacji w aplikacji. Zwiększa pracę programistów podczas łączenia ukrytych danych w kodzie. Ale korzyści, jakie oferuje, są naprawdę nieuniknione.

Przeczytaj także: Pytania i odpowiedzi dotyczące wywiadu w Pythonie

Wniosek

Aby dołączyć do naszego kursu online Pythona za darmo, wystarczy wykonać następujące kroki:

  • Przejdź na naszą stronę startową
  • Wybierz kurs „Python dla nauki o danych”
  • Kliknij Zarejestruj
  • Zakończ proces rejestracji

Otóż ​​to. Możesz uczyć się Pythona online za darmo za pośrednictwem naszego nowo uruchomionego programu upStart i rozpocząć swoją przygodę z nauką o danych. Przez kilka tygodni musiałbyś zainwestować tylko 30 minut dziennie. Ten program nie wymaga inwestycji pieniężnych.

Zarejestruj się już dziś i zacznij.

Jeśli masz jakieś pytania lub sugestie dotyczące tego tematu, daj nam znać w komentarzach poniżej. Chcielibyśmy usłyszeć od ciebie.

Jeśli jesteś zainteresowany nauką o danych, sprawdź program IIIT-B i upGrad Executive PG w dziedzinie Data Science, który jest stworzony dla pracujących profesjonalistów i oferuje ponad 10 studiów przypadków i projektów, praktyczne warsztaty praktyczne, mentoring z ekspertami z branży, 1 -on-1 z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.

Co ukrywają dane w Pythonie?

Ukrywanie danych jest jedną z podstawowych koncepcji programowania obiektowego, która ogranicza dostęp do danych ze świata zewnętrznego. Szczegóły, takie jak członkowie danych, są ukrywane za pomocą specyfikatora dostępu „Prywatny”. Rozważ poniższy przykład, aby lepiej zrozumieć.
Załóżmy, że mamy klasę o nazwie myClass i prywatnego członka o nazwie __privateCounter. Wewnątrz tej klasy mamy funkcję o nazwie myFunc, która zwiększa wartość __privateCounter o 1 i wyświetla ją. Poza klasą stworzyliśmy obiekt klasy i za pomocą tego obiektu wywołaliśmy myFunc. Teraz, jeśli spróbujemy wydrukować __privateCounter przy użyciu tego obiektu, zwróci błąd.
W powyższym przykładzie „__privateCounter” jest domyślnie prywatnym członkiem klasy „myClass”. Ponieważ wykonaliśmy na nim ukrywanie danych, nie można uzyskać do niego dostępu poza klasą, w której został zadeklarowany. Aby uzyskać dostęp do członków prywatnych, musimy zdefiniować funkcję członka, którą w tym przypadku jest „myFunc”.

Jakie są zalety i wady ukrywania danych?

Chociaż ukrywanie danych jest podstawową koncepcją obiektów OOP i ma wiele zalet, ma też pewne wady. Oto niektóre z najważniejszych zalet i wad ukrywania danych w Pythonie:
Zalety
1. Pomaga zapobiegać nadużyciom i manipulacji nietrwałymi danymi, deklarując je jako prywatne.
2. Elementy danych klasy są usuwane z nieistotnych danych.
3. Izoluje obiekty jako podstawowe pojęcie OOP.
Niedogodności
1. Programiści często są zmuszeni do pisania długich kodów w celu ochrony ulotnych danych przed klientami.
2. Obiekty działają stosunkowo wolniej, ponieważ powiązanie między widocznymi i niewidocznymi danymi sprawia, że ​​działają one szybko, a ukrywanie danych zapobiega temu powiązaniu.

Czym różni się ukrywanie danych od abstrakcji danych?

Ukrywanie danych wspiera ideę ograniczania danych, tak aby świat zewnętrzny nie miał do nich dostępu ani nie mógł ich modyfikować. Na przykład szczegóły wynagrodzenia pracownika są ukryte przed innymi pracownikami. W Pythonie osiąga się to za pomocą „modyfikatora dostępu prywatnego”.
Abstrakcja danych odnosi się do idei ukrywania implementacji wewnętrznej i pokazywania cech światu zewnętrznemu. Na przykład w kalkulatorze wyświetlane są tylko operacje wykonywane przez kalkulator. Nie możesz jednak zobaczyć wewnętrznego działania tych operacji. W Pythonie do implementacji tego używane są różne specyfikatory dostępu.