Omówienie enkapsulacji w Pythonie

Hermetyzacja jest jedną z czterech podstawowych koncepcji programowania obiektowego. Gdy istnieje potrzeba grupowania danych, a kolejne podprogramy, które współpracują i działają w jednym miejscu, a także potrzeba ukrycia skomplikowanych szczegółów przed użytkownikiem, używamy enkapsulacji, aby zrozumieć „enkapsulację w Pythonie”, musimy głęboko zanurkować i zrozumieć jak enkapsulacja pojawia się na obrazie w języku programowania. Hermetyzacja pomaga w ograniczeniu dostępu do metod i zmiennych. Zapobieganie przypadkowej modyfikacji danych, a osiąga się to za pomocą metod niepublicznej zmiennej instancji i niepublicznej zmiennej instancji. Klasa hermetyzuje metody i zmienne.

Zarządzanie nazwami w języku Python

Python oznacza ograniczenie dostępu do danych. Nie ma żadnych jawnych modyfikatorów dostępu, ale dostęp można kontrolować za pomocą funkcji zarządzania nazwami w języku Python. Domyślnie wszystkie metody i zmienne są publiczne w Pythonie. Więc jeśli jakikolwiek identyfikator ma dwa wiodące znaki podkreślenia, staje się niepubliczną instancją w Pythonie. Określilibyśmy tutaj niepubliczne zmienne i metody wystąpienia, aby lepiej zrozumieć enkapsulację. Zasięg metody niepublicznej instancji jest tylko w obrębie jej własnej klasy i zaczyna się od jednego znaku podkreślenia lub dwóch znaków podkreślenia, tj. Podwójnego „_” lub „__” podwójnie przed zmienną lub metodą. Zakres niepublicznej zmiennej instancji należy również do jej własnej klasy lub do metody, w której jest zdefiniowany, i zaczyna się od dwóch znaków podkreślenia. Jeśli zdarzy nam się przegapić dwa podkreślenia, wówczas metoda ta jest uważana za metodę publiczną. Zanim zrozumiemy enkapsulację w Pythonie, musimy zrozumieć, jak działają zmienne i metody instancji publicznych i niepublicznych.

Zmienne wystąpienia niepublicznego

W Pythonie nie ma terminu „prywatny”, ponieważ żaden atrybut nie jest tak naprawdę prywatny w Pythonie (omówimy podstawową alternatywę w dalszej części artykułu). Zamiast tego nazywamy je zmienną wystąpienia niepublicznego. W ten sposób odsyłamy do zmiennych prywatnych i metod prywatnych.

Oto mały fragment kodu w pythonie dla niepublicznych zmiennych instancji:

Używamy słowa kluczowego self, ponieważ uzyskujemy dostęp do zmiennej klasy. Dane wyjściowe to:

Aby pobrać potwierdzenie zakresu niepublicznej zmiennej instancji, dodajemy print (abc .__ a) do kodu:

A zwracane dane wyjściowe to:

Widzimy zatem, że nie możemy używać niepublicznych zmiennych instancji poza klasą.

Metody wystąpienia niepublicznego

Funkcji niepublicznej instancji nie można wywołać bezpośrednio na obiekcie, ale tylko w obrębie klasy.

W tym fragmencie kodu mamy dwie metody, jedną niepubliczną instancję i drugą metodę publiczną. Metodę publiczną można łatwo wywołać, tworząc obiekt klasy abc, a następnie drukuje się jego wynik.

Gdy próbuje się zastosować podobne podejście w przypadku metody niepublicznej, występuje następujący błąd:

Ten program wygeneruje następujące dane wyjściowe:

Dlatego nie można uzyskać dostępu do metody instancji niepublicznej poprzez utworzenie obiektu. Aby uzyskać dostęp do niepublicznej metody instancji, możemy wywołać metodę __show1 () z metody show2 () tej samej klasy. Oto, w jaki sposób możemy wyświetlić metodę wystąpienia niepublicznego z metody publicznej tej samej klasy.

Wynik:

Dlatego metoda instancji niepublicznej nie może zostać wywołana poza jej klasą.

Pośredni sposób dostępu do zmiennej niepublicznej

Z uzasadnionych powodów nie można uzyskać dostępu do niepublicznych zmiennych instancji poza klasą, ale istnieje pośredni sposób modyfikacji wartości niepublicznej zmiennej instancji i dostępu za pomocą obiektów. Przyjrzymy się poniższemu fragmentowi kodu:

Wynik:

W powyższym programie mamy publiczne metody getNumber (self, num) i displayNumber () oraz jedną niepubliczną zmienną instancji. Po wywołaniu pierwszej metody przypisujemy wartość do niepublicznej zmiennej instancji, która jest wywoływana w metodzie displayNumber ().

Metoda setter służy do ustawiania wartości niepublicznej zmiennej instancji. Jest to pomocne w scenariuszach, w których można chcieć zmienić wartość niepublicznej zmiennej instancji po utworzeniu obiektów dla określonej zmiennej.

Zalety enkapsulacji w Pythonie

Hermetyzacja pomaga w ustanowieniu lepszego przepływu danych, a także w ochronie danych. Koncepcja enkapsulacji sprawia, że ​​kod jest samowystarczalny. Hermetyzacja zapewnia wielką pomoc na poziomie wdrażania, ponieważ koncentruje się przede wszystkim na pytaniu „jak” pozostawiając kompleks „kiedy / gdzie” i jego złożoności. Ukrywanie danych w jednostce ułatwia enkapsulację, a także zabezpiecza dane.

Dlaczego potrzebujemy enkapsulacji w Pythonie?

Poniżej znajduje się kilka wymienionych powodów, dla których programiści uważają, że koncepcja enkapsulacji jest przydatna i dlaczego koncepcje obiektowe rządzą w większości języków programowania, które działają w dzisiejszym scenariuszu.

  • Istnieje potrzeba dobrze zdefiniowanej interakcji w każdej aplikacji, kapsułkowanie pomaga w osiągnięciu tego.
  • Koncepcja programowania obiektowego w Pythonie koncentruje się na tworzeniu kodu wielokrotnego użytku. Jest to również skracane jako DRY (Don't Repeat Yourself).
  • Utrzymanie aplikacji jest łatwiejsze i zapewnione jest bezpieczeństwo.
  • Klarowność procedury kodowania, ponieważ programiści powinni zwracać uwagę na cel klasy, a złożoność jest rozwiązywana systematycznie.
  • Właściwa organizacja kodów pomaga w elastyczności kodu, a także pomaga w testowaniu jednostkowym.
  • Użytkownicy uważają, że korzystanie z systemu jest łatwe, ponieważ są ukryte przed złożonym projektem związanym z backendem.
  • Posiadanie i zamknięcie wszystkich podobnych danych w jednym miejscu zwiększa spójność wewnątrz modułu.
  • Poprawia czytelność kodów i zmiany w jednej części kodu nie zakłócają innych części kodu.
  • Hermetyzacja zapobiega przypadkowemu dostępowi do części kodu, ale nie jest to celowe, ponieważ obiekty przechowują krytyczne dane dla aplikacji i należy je zmienić w dowolnym miejscu w kodzie.

Wniosek - kapsułkowanie w Pythonie

Mówiąc prościej: Hermetyzacja w Pythonie oznacza, że ​​wewnętrzna reprezentacja obiektu jest zasadniczo ukryta przed widokiem poza definicją obiektu. Pomaga to deweloperowi opracować przyjazną dla użytkownika obsługę końcową i zapewnia ochronę przed naruszeniem bezpieczeństwa, ponieważ kody są bezpieczne.

Polecane artykuły

Jest to przewodnik po enkapsulacji w Pythonie. Tutaj omawiamy potrzebę enkapsulacji w pythonie wraz z niepublicznymi zmiennymi instancji i metodami instancji. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Co to jest Python
  2. Jest zorientowany obiektowo na Python
  3. Wzory w Pythonie
  4. Jak korzystać z enkapsulacji w C ++?
  5. Hermetyzacja w Javie | Przykłady
  6. Hermetyzacja w C (praca, przykłady)
  7. Wprowadzenie do enkapsulacji w JavaScript